静态化-VeloCity

1.在spring.xml中配置css

 1     <!-- 指定vm模版路径 start  -->
 2     <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
 3         <property name="resourceLoaderPath" value="/WEB-INF/"/>
 4         <property name="preferFileSystemAccess" value="true"/>
 5         <property name="velocityProperties">
 6             <props>
 7                 <prop key="input.encoding">UTF-8</prop>
 8                 <prop key="output.encoding">UTF-8</prop>
 9                 <prop key="default.contentType">text/html;charset=UTF-8</prop>
10             </props>
11         </property>
12     </bean>
13      <!-- 指定vm模版路径 end  -->

2.java方法html

 1

@Autowired
@Qualifier("velocityEngine")
private VelocityEngine velocityEngine;java

@RequestMapping(value = "/vm", method = RequestMethod.GET)  spring

 2     public void createHeader(HttpServletRequest request, HttpServletResponse response, String type) throws Exception {  3         try {  4             // 静态页生成路径
 5             String path1 = request.getSession().getServletContext().getRealPath("/") + "index/template/include/";  6  createPath(path1);  7             String path = path1+"header.jsp";  8             // css路径
 9             String csspath = getPath(request); 10             //velocityEngine.setProperty("resourceLoaderPath", "/WEB-INF/velocity/");
11             Template tl = velocityEngine.getTemplate("./index.vm", "UTF-8"); 12             VelocityContext vc = new VelocityContext(); 13             //数据封装start
14             vc.put("csspath", csspath); 15             vc.put("tag", 12); 16             vc.put("isnull", ""); 17             vc.put("bool", false); 18             List l=new ArrayList(); 19             l.add("a"); 20             l.add("b"); 21             l.add("c"); 22             l.add("d"); 23             l.add("e"); 24             vc.put("list", l); 25             SysNew s = new SysNew(); 26             s.setContents("contents"); 27             s.setEvents("eve"); 28             vc.put("sys", s); 29             //数据封装end
30             vc.put("charset","<%@ page language='java' import='java.util.*' pageEncoding='UTF-8'%>"); 31             BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), "UTF-8")); 32  tl.merge(vc, bw); 33             
34             //直接生成html代码不生成--发模版邮件使用star 35             //StringWriter sw = new StringWriter(); 36             //tl.merge(vc, sw); 37             //response.getWriter().print(sw.toString()); 38             //直接生成html代码不生成--发模版邮件使用end
39  bw.close(); 40 
41         } catch (Exception e) { 42             System.out.println(e.getMessage() + "-----------------------"); 43  } 44     }

3.在WEB-INF下建立模版index.vm,内容以下,我整理了经常使用的标签在模版中app

$charset##去掉这个当前页面中文乱码
1.变量的调用,后台存入“csspath”,前台
$csspath</br>${csspath}<br />
2.if判断</br>
#if($tag == 1)
    等于1
#else
    不等于1
#end
<br/>
3.判断是否为空<br/>
#if($isnull)
    变量为空
#else
    变量不为空
#end
<br/>
4.判断true OR false  <br/>
#if($bool)
    true
#else
    false
#end
<br/>
5.注释:两个“#”注释单行,“#**#”注释代码块
<br/>
6.循环<br/>
#foreach($lis in $list)
    $lis -- $velocityCount ##当前循环下标
#end
<br/>
7.定义变量
#set ($bianliang="bianliang")
$bianliang
<br/>
8.调用对象中的值,和jsp中相似<br>
$sys.events
$sys.Contents
<br/>
9.引用模版<br/>
主要用于处理具备相同内容的页面,好比每一个网站的顶部或尾部内容。
如:##parse("/blog/top.html")或#include("/blog/top.html")
parse与include的区别在于,若包含的文件中有Velocity脚本标签,将会进一步解析,而include将原样显示。
##inclue("模板文件名")或#parse("模板文件名")
<br/>

4.引用jarjsp

velocity-1.7.jar网站

相关文章
相关标签/搜索