关闭

前端模板语言velocity选择

标签: 模板引擎velocity
348人阅读 评论(0) 收藏 举报
分类:

Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
配置:
1.在pom.xml增加依赖的velocity包

  <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-tools</artifactId>
        <version>2.0</version>
    </dependency>   

2、修改dispatcher-servlet.xml文件,将之前的的解析JSP改为html

    <!-- 配置SpringMVC的视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/html/"/>
        <property name="suffix" value=".html"/>
    </bean>

并增加下面配置

    <!-- velocity模板信息设置 -->
    <bean id="velocityConfig"  class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">  
        <property name="resourceLoaderPath" value="/WEB-INF/html" />  
        <property name="configLocation" value="classpath:velocity.properties" /> 
        <property name="velocityProperties">    
         <props>    
             <prop  key="input.encoding">utf-8</prop>    
             <prop  key="output.encoding">utf-8</prop>      
          </props>    
        </property>  
    </bean>     
    <!-- 设置视图解析工具 -->  
    <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="suffix" value=".html"/>
        <property name="order" value="1" />
        <property name="requestContextAttribute" value="rc" />
        <property name="contentType">
            <value>text/html;charset=UTF-8</value>
        </property>
    </bean> 

3、在resource目录下建立velocity.properties文件

#log4j日志配置
runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem
runtime.log.logsystem.log4j.category = velocity_log
runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
runtime.log.invalid.reference = true

#字符编码
input.encoding =  UTF-8
output.encoding  =  UTF-8

##foreach()指令时循环中的计数器名, 在模板中可以通过 $velocityCount 来访问
directive.foreach.counter.name =  velocityCount
#foreach()中计数器的起始值.
directive.foreach.counter.initial.value =  1

4、新建testController

@RequestMapping(value="/test")  
@Controller  
public class TestController {  
    @RequestMapping(value="/index")  
    public String index(Model model) {  
        String name = "tester";  
        model.addAttribute("name", name);  
        return "test/index";  
    }  
}  

就可以了

=======================================

一、取系统路径:${rc.contextPath}
例子:
1<script type="text/javascript" src="${rc.contextPath}/static/js/jquery-1.7.2.js"></script>
2、diag.URL = '${rc.contextPath}/user/goEditU.do?USER_ID='+user_id;
二、标识变量或对象
1、用“$”号来标识,例如$user$userList$i
2、用"${}"来明确标识一个velocity变量
比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这 个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。
三、if else
1#if(XX && YY || ZZ)
   .......
#elseif(AA)
   .......
#else
   ........
#end
四、foreach
#foreach($user in $userList)
    console.log("当前是第"+${velocityCount}+"个")
    console.log($user.name + )
#end

五、设置变量
1#set ($i=1) 
六、包含文件
#include("a.html")包含静态页面,不解析,会原样显示
#parse("a.html")包含前会先解析velocity标签   

====补充,让外部独立的js也使用velocity变量====
1、增加一套解析JS的

    <!-- 设置视图解析工具 -->  
    <bean id="jsvelocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="suffix" value=".js"/>
        <property name="order" value="2" />
        <property name="requestContextAttribute" value="rc" />
        <property name="contentType">
            <value>text/html;charset=UTF-8</value>
        </property>
    </bean> 

2、html里面

<script type="text/javascript">
#parse("../../static/js/common/xx.js")
</script>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19019次
    • 积分:72
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    最新评论