Struts与Velocity模板引擎集成

 


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


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值