<?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。新的配置文件如清单 3 所示。
清单 3. 针对 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-config10.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>
清单 3 看起来就像一个非常典型的 Struts 应用程序,只有一个小小的不同。响应没有把客户转向到 JSP,而直接转向到 .vm 文件(请参阅清单 3 中的引用 1、2 和 3)。在大多数情况下,把 Struts 应用程序从 JSP 迁移到 Velocity 视图,需要做的仅仅是全局搜索,把 .jsp 替换成 .vm。其他所有东西都可以保持不变!模板可以同样保存在以前保存 JSP 的位置;所需要做的只是用 Velocity 命令代替 JSP 标记。
第 5 步:创建 Velocity 模板
在清单 4 中,可以看到示例应用程序搜索页面的 Velocity 模板。
清单 4. 搜索页面的 Velocity 模板
<HTML>
<HEAD>
<TITLE>Search</TITLE>
</HEAD>
<BODY>
$!errors.msgs()||(1)
<FORM method=”POST”
action=”$link.setAction(’/search’)”> |(2)
<h2>Book Search</h2>
ISBN:<INPUT type=”text” name=”isbn”>
<INPUT type=”submit” value=”Submit” name=”submit”>
</FORM>
</BODY>
</HTML>