配了N久的velocity+struts2终于配置完毕。网络上那些参考有些让人产生疑惑。特写下此文,作为下次参考。
1.web.xml 置于WEB-INF下
需加入<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
2.toolbox.xml 置于src下 如果想把toolbox.xml置于WEB-INF下 就因该在struts.xml中添加
<constant name="struts.velocity.toolboxlocation" value="/WEB-INF/toolbox.xml" />
<?xml version="1.0"?>
<toolbox>
<tool>
<key>date</key>
<scope>application</scope>
<class>
org.apache.velocity.tools.generic.ComparisonDateTool
</class>
<parameter name="format" value="yyyy-MM-dd" />
<parameter name="depth" value="2" />
<parameter name="skip" value="month" />
</tool>
<tool>
<key>math</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.MathTool
</class>
</tool>
<tool>
<key>number</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.NumberTool
</class>
<parameter name="format" value="#0.0" />
</tool>
<tool>
<key>sorter</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.SortTool
</class>
</tool>
<tool>
<key>esc</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.EscapeTool
</class>
</tool>
<tool>
<key>TokenHelper</key>
<scope>request</scope>
<class>org.apache.struts2.util.TokenHelper
</class>
</tool>
<tool>
<key>StringUtils</key>
<scope>application</scope>
<class>org.apache.commons.lang.StringUtils</class>
</tool>
</toolbox>
4.关于页面乱码
在velocity的jar包中修改velocity.properties 修改如下
input.encoding=UTF-8
output.encoding=UTF-8
default.contenttype=text/html;charset=UTF-8
5.myeclipse中 把struts.xml与toolbox.xml以及velocity.properties放入src中 部署后会出现在WEB-INF/classes中
6.jar包如下