`

velocity 学习进阶

 
阅读更多

转:http://gatusso52.iteye.com/blog/403439

1使固定后缀名的所有页面都被velocity渲染

 

web.xml

 

Java代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>velocity</servlet-name>  
  3.     <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>  
  4.       <init-param>  
  5.         <param-name>org.apache.velocity.properties</param-name>  
  6.         <param-value>/WEB-INF/velocity.properties</param-value>  
  7.     </init-param>  
  8. </servlet>  
  9. <servlet-mapping>  
  10.     <servlet-name>velocity</servlet-name>  
  11.     <url-pattern>*.vpage</url-pattern>  
  12. </servlet-mapping>  

 

其中velocity.properties(注意classloader和encoding)

 

Java代码  收藏代码
  1. tools.view.servlet.error.template = error.vm  
  2. tools.view.servlet.layout.directory = /  
  3. tools.view.servlet.layout.default.template =  default.vm  
  4. resource.loader = webapp  
  5. webapp.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader  
  6. webapp.resource.loader.cache = true  
  7. webapp.resource.loader.modificationCheckInterval = 2  
  8. input.encoding = gbk  
  9. output.encoding = gbk  
  10. velocimacro.library.autoreload = true  
  11. runtime.log.logsystem.class=org.apache.velocity.runtime.log.Log4JLogSystem  
  12. runtime.log.logsystem.log4j.logger=velocity  
  13. parser.pool.size=50  

 

 这样所有.vpage都经过velocity渲染

 

 

 

2

 

还可以使用tools.xml集中加引用

 

修改web.xml如下

 

Xml代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>velocity</servlet-name>  
  3.     <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>org.apache.velocity.toolbox</param-name>  
  6.         <param-value>/WEB-INF/tools.xml</param-value>  
  7.     </init-param>  
  8.         <init-param>  
  9.         <param-name>org.apache.velocity.properties</param-name>  
  10.         <param-value>/WEB-INF/velocity.properties</param-value>  
  11.     </init-param>  
  12. </servlet>  
  13. <servlet-mapping>  
  14.     <servlet-name>velocity</servlet-name>  
  15.     <url-pattern>*.vpage</url-pattern>  
  16. </servlet-mapping>  

 

 

 

于是可以在tools.xml定义变量、velocity提供的类、以及自己定义的类。下面分别举例

 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <toolbox>  
  3.     <data>  
  4.         <key>name</key>  
  5.         <value>severus</value>  
  6.     </data>  
  7.     <tool>  
  8.         <key>myTool</key>  
  9.         <class>net.sx.velocity.tools.MyTool</class>  
  10.     </tool>  
  11.     <tool>  
  12.         <key>date</key>  
  13.         <scope>request</scope>  
  14.         <class>org.apache.velocity.tools.generic.DateTool</class>  
  15.         <parameter name="format" value="yyyy-MM-dd hh:mm:mm"/>  
  16.     </tool>  
  17. </toolbox>  

 

其中MyTool如下

 

Java代码  收藏代码
  1. public class MyTool {  
  2.     public String getMessage() {  
  3.         return "message";  
  4.     }  
  5.       
  6.     public String sayHello(String s){  
  7.         return "say hello by macro " + s;  
  8.     }  
  9. }  

 

 于是vpage可以这样用

 

Html代码  收藏代码
  1. <html>  
  2.     <body >          
  3.         Hello, $name <br>  
  4.         $myTool.message <br>  
  5.     $date.date<br>  
  6.     </body>  
  7. </html>  

 

  输出

 

Html代码  收藏代码
  1. Hello, severus   
  2. message   
  3. Sun Jun 07 04:09:09 CST 2009  

 

 

 

 

 

3

 

使用macro自定义操作函数。

 

可以用macro.vm集中定义。

 

tools.xml集中加引用,macro.vm中集中加函数。

 

 

 

在velocity.properties中加一句

 

Java代码  收藏代码
  1. velocimacro.library = WEB-INF/macro.vm  

 

 然后macro.vm

 

Java代码  收藏代码
  1. #macro(sayHello $name)  
  2.  $myTool.sayHello($name)  
  3. #end  

 

 于是可以在vpage中这样用

 

Html代码  收藏代码
  1. #sayHello("severus")  

 

  输出

 

Java代码  收藏代码

say hello by macro severus

分享到:
评论

相关推荐

    Java进阶教程Velocity快速掌握模板引擎视频

    本课程的定位是velocity的系统教学课程 , 从基础到进阶 , 所以只要对velocity感兴趣 , 想系统学习velocity的开发人员都可以学习本课程 ! 学习本课程对你有如下要求 : l 有一定的JAVA编程基础(velocity engine要求) l...

    velocity的学习资料

    这个压缩包提供的资料应该涵盖了Velocity的基础和进阶知识,对于想要学习或提升Velocity技能的开发者来说,是一份宝贵的资源。通过深入学习和实践,可以掌握如何有效地使用Velocity来创建高效、可维护的动态内容生成...

    Velocity 模版

    而 `Velocity2.ppt` 很可能是一个详细的 Velocity 进阶教程,涵盖了高级特性如宏、自定义工具类的使用等。 总的来说,Velocity 是一款强大的模板引擎,它的轻量级设计和易用性使其成为 Java Web 开发中的得力助手。...

    velocity入门使用

    **Velocity入门指南** Velocity是一款基于Java的模板引擎,它允许...通过实践和学习,你可以快速掌握Velocity并将其应用到实际项目中。对于初学者来说,这是一个很好的起点,也是深入了解Web开发的一个重要步骤。

    Velocity 入门

    **Velocity 入门** Velocity 是一个基于 Java 的模板引擎,它是 Apache 软件基金会的顶级项目之一。它被广泛用于 Web 开发中,尤其是在 ...学习并熟练使用 Velocity,能有效提升开发效率,实现更加灵活的视图层设计。

    Matlab与机器学习入门 进阶与提高10 粒子群优化(Particle Swarm Optimization, PSO)算法.zip

    每个粒子包括两个主要属性:位置(Position)和速度(Velocity)。位置是解空间中的一个点,速度决定了粒子在下一次迭代时如何改变其位置。初始位置和速度通常是随机生成的。 在每次迭代中,PSO算法执行以下步骤: ...

    velocity参考文档

    #### 六、Velocity进阶技巧 1. **自定义宏**:创建可重用的模板片段。 2. **模板继承**:通过继承实现模板重用。 3. **国际化支持**:利用Velocity实现多语言支持。 4. **错误处理**:合理处理模板解析时可能出现的...

    技术进阶图谱.rar

    总的来说,"技术进阶图谱.rar"提供的资料可以作为初学者了解大数据领域的入门指南,但对于专业人士,需要结合其他更深入的学习资源,跟踪最新的技术动态和发展,以确保全面掌握这个快速变化的领域。

    Java进阶路线

    ### Java进阶路线详解 #### 一、Java基础 **1. 传值与传引用** 在Java中,基本类型(如int、char等)的传递是按值传递的,而对象类型的传递则是按引用传递的。理解这一点对于正确处理变量和对象之间的交互至关...

    基于 SpringBoot+ +Mybatis+ Apache velocity 开发 webservice +源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    viocity学习资料

    【Velocity学习资料】 Velocity,全称Apache Velocity,是一款开源的Java模板引擎,它允许开发者将HTML、XML等静态页面与Java代码分离,使得开发者能够专注于业务逻辑,而设计师可以独立地设计页面样式。Velocity被...

    Vue学习笔记进阶篇之单元素过度

    可以配合使用第三方 JavaScript 动画库,如 Velocity.js 单元素/组件的过度 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加 entering/leaving 过渡 条件渲染 (使用 v-if) 条件展示...

    JAVA学习步骤DOC

    通过这三个阶段的学习,你可以全面掌握JAVA编程的基础,进阶到WEB开发和企业级应用。记得每个阶段都要结合实践项目,以提升实际开发能力。同时,不断关注新的技术和框架,保持学习的热情,是成为一名优秀的JAVA...

    基于SpringBoot框架仿stackOverflow网站后台开发+源代码+文档说明

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。

    使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了异步消息等进阶功能,同时使用python爬虫进行数据填充。 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/...

    大数据学习笔记,学习路线,技术案例整理。.zip

    本资料包“大数据学习笔记,学习路线,技术案例整理”是一个全面的大数据学习资源,旨在帮助初学者和进阶者系统地掌握大数据的核心技术和应用实践。 首先,我们来了解一下大数据的关键概念和技术栈。大数据通常有四...

    新手如何学习java(java学习建议路线图).doc

    Java是一种广泛使用的编程语言,尤其在企业级应用开发中占据...学习Java是一个持续的过程,从基础到进阶,再到实际项目经验的积累。不断地实践、阅读代码、参与开源项目,将帮助你更好地理解和掌握这门强大的编程语言。

    strtus2学习电子书

    Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(Model-View-Controller)架构的Web应用。...通过系统的学习,你可以提高自己的Java web开发技能,为今后的进阶学习打下坚实的基础。

Global site tag (gtag.js) - Google Analytics