前端模板语言velocity选择

原创 2015年11月21日 10:42:31

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>

velocity 轻量级模板 接收实体在前端展示

div class="table-responsive"> Banner图 链接地址 排序 发布时间 下架时间 操作 .bigImg:...
  • AVGworkld
  • AVGworkld
  • 2017年04月15日 15:53
  • 275

模板语言velocity

http://velocity.apache.org/engine/devel/vtl-reference-guide.html #foreach ($row in $!history) ...
  • xxdxuxiangdong
  • xxdxuxiangdong
  • 2014年01月23日 15:45
  • 1171

Velocity模板引擎的介绍和基本的模板语言语法使用

类似于PHP中的Smarty,Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代...
  • zhangleijava1
  • zhangleijava1
  • 2014年06月26日 13:49
  • 1530

(二)模板引擎之Velocity脚本基本语法全

velocity velocity三种reference     变量:对java对象的一种字符串化表示,返回值调用了java的toString()方法的结果。     方法:调用的是对象的某个方...
  • lovesummerforever
  • lovesummerforever
  • 2015年08月10日 00:03
  • 6399

velocity(vm)模板引擎学习介绍及语法

velocity与freemaker、jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,(注:castle团队在gith...
  • sunny243788557
  • sunny243788557
  • 2016年10月12日 14:10
  • 16805

velocity模板的基本知识

v
  • lafengwnagzi
  • lafengwnagzi
  • 2016年09月30日 18:07
  • 1131

velocity模板使用手册

1、什么是Velocity? Velocity 是一个基于Java的模版引擎。它允许web 页面设计者引用JAVA代码预定义的方法。Web 设计者可以根据MVC模式和JAVA程序员并行工作,这意...
  • qw463800202
  • qw463800202
  • 2017年01月05日 14:15
  • 234

velocity模板学习

一:先看一个例子其实挺简单,先以一个例子说明。 建立一个项目velocity_app建立一个模板文件:example.vm,该文件放到项目的根目录。内容是:Hello $name, this is V...
  • wudouguerwxx
  • wudouguerwxx
  • 2008年03月18日 14:43
  • 8449

velocity模板的语法简要汇总

velocity模板的语法简要汇总
  • whereismatrix
  • whereismatrix
  • 2015年12月01日 11:12
  • 914

velocity中加载模板文件的方式

velocity有多中种方式供我们去加载我们自定义的模板文件,下面详细的介绍使用的方法。 1.1.1. 加载classpath目录下的模板文件 使用classpath方式加载,是我们经常用到的一种...
  • qq_30739519
  • qq_30739519
  • 2016年04月12日 21:46
  • 3467
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:前端模板语言velocity选择
举报原因:
原因补充:

(最多只允许输入30个字)