集成Velocity

Sep 23, 2017 11:04:42 PM

作者:wendal

将nutz-plugins-views加入到项目中

手动下载地址: https://jfrog.nutz.cn/artifactory/jcenter/org/nutz/nutz-plugins-views/

maven项目的依赖项,中央库有.

  1. <dependency>
  2. <groupId>org.nutz</groupId>
  3. <artifactId>nutz-plugins-views</artifactId>
  4. <version>1.r.60</version>
  5. </dependency>

maven引用velocity相关jar包

  1. <dependency>
  2. <groupId>org.apache.velocity</groupId>
  3. <artifactId>velocity</artifactId>
  4. <version>1.7</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.velocity</groupId>
  8. <artifactId>velocity-tools</artifactId>
  9. <version>2.0</version>
  10. </dependency>

修改MainModule类,添加引用

  1. @Views(value={VelocityViewMaker.class})
  2. // 其他配置,如IocBy等等
  3. public class MainModule {}

在classpath下添加velocity.properties

  1. #资源加载器或加载器别名
  2. resource.loader = webapp
  3. #资源加载器类全限定名
  4. webapp.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
  5. #资源位置
  6. webapp.resource.loader.path=/WEB-INF/
  7. #编码
  8. input.encoding=UTF-8
  9. output.encoding=UTF-8
  10. #布局文件为准
  11. tools.view.servlet.layout.directory = layout/
  12. #默认布局文件名称
  13. tools.view.servlet.layout.default.template =default.html
  14. #默认错误文件名称
  15. tools.view.servlet.error.template =Error.vm
  16. tools.view.servlet.layout.default.template =Default.vm

web.xml配置

  1. <init-param>
  2. <param-name>org.apache.velocity.properties</param-name><!-- 这个不能修改-->
  3. <param-value>velocity.properties</param-value> <!-- 对应上一步中配置文件的位置 -->
  4. </init-param>

使用方法

User类

  1. public class User {
  2. public int roleId;
  3. public String userName;
  4. public int getRoleId() {
  5. return roleId;
  6. }
  7. public void setRoleId(int roleId) {
  8. this.roleId = roleId;
  9. }
  10. public String getUserName() {
  11. return userName;
  12. }
  13. public void setUserName(String userName) {
  14. this.userName = userName;
  15. }
  16. }

MVC类

  1. @At("/")
  2. @Ok("vm:/tmpl/main.vm")
  3. public User main() {
  4. User user = new User();
  5. user.setUserName("nutz");
  6. user.setRoleId(0);
  7. return user;
  8. }

main.vm文件

  1. #if($!{obj.roleId} == 0)
  2. <li> 管理员 $!{obj.userName}</li>
  3. #else
  4. <li> 编辑 $!{obj.userName}</li>
  5. #end

更灵活的使用方法

MVC类

  1. @At("/")
  2. @Ok("vm:/tmpl/main.vm")
  3. public NutMap main() {
  4. NutMap map = new NutMap();
  5. map.put("site_name", "Nutz工具箱");
  6. User user = new User();
  7. user.setRoleId(0);
  8. user.setUserName("nutz");
  9. map.put("user", user);
  10. return map;
  11. }

main.vm文件

  1. <span> 站点名称:$!{obj.site_name}</span>
  2. #if($!{obj.user.roleId} == 0)
  3. <li> 管理员 $!{obj.user.userName}</li>
  4. #else
  5. <li> 编辑 $!{obj.user.userName}</li>
  6. #end

可供参考的实例项目

https://github.com/Wizzercn/NutzWk

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议GNU自由文档许可证下修改和再使用。

原文: http://nutzam.com/core/integration/velocity.html