在struts.xml配置文件里,result标签可以定义type,其中一种type类型为velocity,这是一个模板,可以定义这种方式输出内容
1.struts.xml文件中的配置
<action name="VMHelloWorld" class="com.koubei.Hello">
<result type="velocity">/HelloWorld.vm</result>
</action>
2.action类代码
package com.koubei;
import java.util.Date;
import java.text.DateFormat;
import com.opensymphony.xwork2.ActionSupport;
public class Hello extends ActionSupport {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute() {
message = "Hello World, Now is "
+ DateFormat.getInstance().format(new Date());
if (message == null) {
return "failure";
}
return SUCCESS;
}
}
3.模板代码,新建Hello.vm文件
<html>
<head>
<title>Velocity</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h2>Message rendered in Velocity: $message</h2>
</body>
</html>
想要以模板输出,必须引入velocity的一些包,包括:
velocity-tools-2.0.jar
velocity-1.7.jar
velocity-1.7-dep.jar
commons-digester-1.8.jar
第四个包必须加入,否则会出现以下错误
javax.servlet.ServletException: Filter execution threw an exception
java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet
……