Struts与Velocity集成 五个步骤替代JSP(3)
2008-02-23 07:59:44来源:互联网 阅读 ()
清单 4 是一个没有 JSP 或 Struts 标记的典型的 HTML 页面。但是,以下元素看起来可能不是那么熟悉:
(1)用 $!errors.msgs() 得到错误消息队列中的错误消息。
(2)用 $link.setAction('/search') 获得搜索转发的 URL。
这就成功了 ?? 模板剩下的部分看起来几乎与以前熟悉的 HTML 文件相同。清单 5 显示了应用程序结果页面的模板。
清单 5. 结果页面的 Velocity 模板
<html>
<body>
<h1>Book Details</h1>
<a href="$link.setForward("searchEntry")">Search again</a> |(1)
<h3>$book.title</h3> |(2)
<b>ISBN:</b>$book.isbn<br>|(3)
<b>Title:</b>$book.title<br>|(4)
<b>Author:</b>$book.author<br>|(5)
<b>Price:</b>$book.price<br>|(6)
<b>No Pages:</b>$book.pages<br>|(7)
<b>Description:</b>$book.description<br>|(8)
<b>Publisher:</b>$book.publisher<br>|(9)
</body>
<html>
可以注意到,清单 5 中不包含 JSP 标记或 Struts 标记。我们来详细看看它:
(1)用 Struts 的链接工具把 <a> 标记的 href 设置为 Struts 转发。
(2)访问 $book title 属性。
(3)访问 $book isbn 属性。
(4)再次访问 $book title 属性。
(5)访问 $book author 属性。
(6)访问 $book price 属性。
(7)访问 $book pages 属性。
(8)访问 $book description 属性。
(9)访问 $book publisher 属性。
讨论
这就是把 Struts 与 Velocity 模板引擎集成的全部工作。表面看起来非常简单(实际上也很简单),但是请想想是什么让这个集成能够工作的呢?
Struts 动作映射可以定义任何视图,不仅限于 JSP。在这篇文章中,我只是把动作映射修改为以 vm 结尾而不是以 jsp 结尾的返回文件。然后,我声明了 Velocity servlet,并告诉 Servlet 容器把以 vm 结尾的文件发送给 VelocityViewServlet。
VelocityViewServlet 把 Velocity 命令表示成 HTML 响应。通过这种方式,VelocityViewServlet 充当了视图响应的拦截器。Struts 控制器把视图转发给 VelocityViewServlet,后者在向客户端发送响应之前处理 vm 文件。请参阅 参考资料 获得关于将 Velocity 视图集成进 Struts 应用程序的更多内容。
结束语
正如在本文中看到的,Struts 与 Velocity 的集成很简单。只需五个步骤就可以把所有东西连在一起。针对不同的引擎和场景,采用模板引擎而不是 JSP 的优势各有不同。在 Velocity 的情况下,优势就是简单性、容易学习以及更好的性能。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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
