Struts与Velocity集成 五个步骤替代JSP(2)
2008-02-23 07:59:44来源:互联网 阅读 ()
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
让我们来看看清单 1 中发生了什么:
(1)声明了 Velocity servlet 并给了它一个 velocity 句柄。
(2)声明了 Velocity servlet 的类名。
Velocity servlet 接受“toolbox”参数。toolbox 是声明应用程序的可用工具的位置。因此,在清单 1 中,我还做了以下工作:
(3)告诉 VelocityServlet 在哪里可以找到 toolbox 的配置。
(4)设置了 load-on-startup 标记,确保在正确的时间装入 Velocity servlet。任何大于或等于 0 的值都会迫使容器通过调用 servlet 的 init() 方法来装入它。放在 load-on-startup 标记体中的值决定了不同的 servlet 的 init 方法调用的次序。例如,0 在 1 之前调用,而 1 在 2 之前调用。缺少的标记或负值允许 servlet 容器根据自己的选择装入 servlet。
(5)声明了 servlet 映射,强迫所有用 .vm 结尾的资源请求定向到 Velocity servlet。请注意(5)中的<servlet-name> 必须与(1)中的<servlet-name> 匹配。交错的声明和映射会在日志中生成错误。
第 3 步:把 toolbox.xml 放在 WEB-INF 下
利用 Velocity,可以使用(或创建)包含许多工具的工具箱。用来登记类的工具箱中包含有用的函数,常常会用到。幸运的是,Velocity 提供了许多预先构建好的工具。还创建了许多 Struts 工具来模拟原始的 Struts 标记。如果发现需要构建自己的工具,也可以自由地构建。在清单 2 中显示的 toolbox.xml 可以在 Velocity 工具下载中找到。这个文件应当随 Velocity JAR 一起放在 WEB-INF 下。
清单 2. 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。新的配置文件如清单 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-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>
清单 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>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
