2010年1月23日
Struts2与Velocity模板引擎集成
Struts2与Velocity模板引擎集成
一 Struts 与 Velocity 模板步骤:
1 把Velocity JAR 放在类路径中。
2 修改 web.xml 文件让它识别 Velocity servlet。
3 把 Velocity toolbox.xml 放在应用程序的 WEB-INF 目录下。
4 修改 struts-config,把它的视图指向 Velocity 模板而不是 JSP。
5 为每个需要显示的页面创建 Velocity 模板。
二 Struts 与 Velocity 模板应用实例:
第 1 步:把 Velocity JAR 放在 WEB-INF/lib 下
如果您还没下载 Velocity,那么现在需要下载它。Velocity 本身是很棒的,但是它的工具包可以帮助您把工作做得更好更快
第 2 步:修改 web.xml,让它识别 Velocity 的 servlet
下一步是修改 Struts 的 web.xml 文件,让它识别 Velocity 的 servlet 并把所有以 .vm 结尾的资源请求定向到 Velocity servlet,如
修改 web.xml,声明 Velocity servlet
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<!-- Map *.vm files to Velocity -->
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
第 3 步:把 toolbox.xml 放在 WEB-INF 下
利用 Velocity,可以使用(或创建)包含许多工具的工具箱。用来登记类的工具箱中包含有用的函数,常常会用到。幸运的是,Velocity 提供了许多预先构建好的工具
toolbox.xml
<?xml version="1.0"?>
<toolbox>
<tool>
<key>link</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.StrutsLinkTool
</class>
</tool>
<tool>
<key>msg</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.MessageTool
</class>
</tool>
<tool>
<key>errors</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.ErrorsTool
</class>
</tool>
<tool>
<key>form</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.FormTool
</class>
</tool>
<tool>
<key>tiles</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.TilesTool
</class>
</tool>
<tool>
<key>validator</key>
<scope>request</scope>
<class>
org.apache.velocity.tools.struts.ValidatorTool
</class>
</tool>
</toolbox>
第 4 步:修改 struts-config
下一步是修改 struts-config.xml,指向 Velocity 视图而不是 JSP。新的配置文件如
针对 Velocity 视图修改后的 struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
<form-beans>
<form-bean name="searchForm" type="app.SearchForm"/>
</form-beans>
<global-forwards>
<forward name="welcome" path="/welcome.do"/>
</global-forwards>
<action-mappings>
<action
path="/welcome"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/search.vm"/> |(1)
<action
path="/search"
type="app.SearchAction"
name="searchForm"
scope="request"
input="/pages/search.vm"> |(2)
<forward name="success"
path="/pages/results.vm"/> |(3)
</action>
</action-mappings>
</struts-config>
第 5 步:创建 Velocity 模板
可以看到示例应用程序搜索页面的 Velocity 模板。
搜索页面的 Velocity 模板
<HTML>
<HEAD>
<TITLE>Search</TITLE>
</HEAD>
<BODY>
$!errors.msgs()
<FORM method="POST"
action="$link.setAction('/search')">
<h2>Book Search</h2>
ISBN:<INPUT type="text" name="isbn">
<INPUT type="submit" value="Submit" name="submit">
</FORM>
</BODY>
</HTML>
清单 5. 结果页面的 Velocity 模板
<html>
<body>
<h1>Book Details</h1>
<a href="$link.setForward("searchEntry")">Search again</a>
<h3>$book.title</h3>
<b>ISBN:</b>$book.isbn<br>
<b>Title:</b>$book.title<br>
<b>Author:</b>$book.author<br>
<b>Price:</b>$book.price<br>
<b>No Pages:</b>$book.pages<br>
<b>Description:</b>$book.description<br>
<b>Publisher:</b>$book.publisher<br>
</body>
<html>
文章来源:网络之都
原文地址:http://www.book18.net/book/675.html
本文来源于:网络之都 http://www.book18.net/ , 原文地址:http://www.book18.net/book/675.html