集成Velocity
By:wendal<wendal1985@gmail.com>

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

Top

手动下载地址: 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类,添加引用

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

在classpath下添加velocity.properties

Top
#资源加载器或加载器别名
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配置

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

使用方法

Top

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

更灵活的使用方法

Top

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

可供参考的实例项目

Top

https://github.com/Wizzercn/NutzWk