集成Velocity
优质
小牛编辑
126浏览
2023-12-01
手动下载地址: https://jfrog.nutz.cn/artifactory/jcenter/org/nutz/nutz-plugins-views/
maven项目的依赖项,中央库有.
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz-plugins-views</artifactId>
<version>1.r.60</version>
</dependency>
maven引用velocity相关jar包
<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>
修改MainModule类,添加引用
@Views(value={VelocityViewMaker.class})
// 其他配置,如IocBy等等
public class MainModule {}
在classpath下添加velocity.properties
#资源加载器或加载器别名
resource.loader = webapp
#资源加载器类全限定名
webapp.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
#资源位置
webapp.resource.loader.path=/WEB-INF/
#编码
input.encoding=UTF-8
output.encoding=UTF-8
#布局文件为准
tools.view.servlet.layout.directory = layout/
#默认布局文件名称
tools.view.servlet.layout.default.template =default.html
#默认错误文件名称
tools.view.servlet.error.template =Error.vm
tools.view.servlet.layout.default.template =Default.vm
web.xml配置
<init-param>
<param-name>org.apache.velocity.properties</param-name><!-- 这个不能修改-->
<param-value>velocity.properties</param-value> <!-- 对应上一步中配置文件的位置 -->
</init-param>
使用方法
User类
public class User {
public int roleId;
public String userName;
public int getRoleId() {
return roleId;
}
public void setRoleId(int roleId) {
this.roleId = roleId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
MVC类
@At("/")
@Ok("vm:/tmpl/main.vm")
public User main() {
User user = new User();
user.setUserName("nutz");
user.setRoleId(0);
return user;
}
main.vm文件
#if($!{obj.roleId} == 0)
<li> 管理员 $!{obj.userName}</li>
#else
<li> 编辑 $!{obj.userName}</li>
#end
更灵活的使用方法
MVC类
@At("/")
@Ok("vm:/tmpl/main.vm")
public NutMap main() {
NutMap map = new NutMap();
map.put("site_name", "Nutz工具箱");
User user = new User();
user.setRoleId(0);
user.setUserName("nutz");
map.put("user", user);
return map;
}
main.vm文件
<span> 站点名称:$!{obj.site_name}</span>
#if($!{obj.user.roleId} == 0)
<li> 管理员 $!{obj.user.userName}</li>
#else
<li> 编辑 $!{obj.user.userName}</li>
#end
可供参考的实例项目
https://github.com/Wizzercn/NutzWk