刚学习mybatis-plus,因为里面有用到velocity,就百度了一下,发现velocity不仅是一个基于Java的模板引擎,还可以用来做许多事情,例如源代码生成,自动Email等功能,详细介绍大家可以去看这篇文章
下面是我打的项目,先来一张目录截屏
MyVelocityViewServlet.java
package com.sve.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.view.VelocityViewServlet;
public class MyVelocityViewServlet extends VelocityViewServlet {
protected Template handleRequest(HttpServletRequest request,HttpServletResponse response,Context ctx) {
//往Context容器存放变量
ctx.put("fullName", "zhongxiaolan");
//页可以往request域中存值
request.setAttribute("anotherName", "xlli");
//forward到指定模板
return getTemplate("vm/test.vm");
}
}
配置velocity.properties
## 日志文件
runtime.log.logsystem.class=org.apache.velocity.runtime.log.SimpleLog4JLogSystem
runtime.log.logsystem.log4j.category=velocity
runtime.log.logsystem.log4j.logger=velocity
## 设置模板文件加载器,webapp从应用根目录加载
resource.loader = webapp
webapp.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
## 模板路径,根目录下的vm文件夹
webapp.resource.loader.path = /vm
##设置编码
input.encoding = UTF-8
output.encoding = UTF-8
编写vm文件
#set($greet = "hello")
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p>$!{greet} $!{fullName}</p>
<p>my another name is $!{anotherName}</p>
</body>
</html>
最后配置web.xml
<servlet>
<servlet-name>MyVelocityServlet</servlet-name>
<servlet-class>com.sve.web.MyVelocityViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyVelocityServlet</servlet-name>
<url-pattern>/servlet/myVelocityServlet</url-pattern>
</servlet-mapping>
访问路径为:http://localhost:8080/velocity/servlet/myVelocityServlet
使用到的包(包大家就自己去找吧)
学习一下velocity真的感觉自己要被气死,老是报错,不是找不到包,就是找不到资源文件,都要疯掉了。。。不过还好坚持下来了