WebWork2与SpringFramework集成之实例篇(原创)(4)

类别:Java 点击:0 评论:0 推荐:

4、用Velocity替代JSP

1)添加WebWorkVelocityServlet控制器:ww2/WEB-INF/web.xml

    <servlet>

        <servlet-name>velocity</servlet-name>

        <servlet-class>com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>velocity</servlet-name>

        <url-pattern>*.vm</url-pattern>

    </servlet-mapping>

l         在web.xml添加WebWorkVelocityServlet控制器,并映射到*.vm

2)配置webwork.i18n.encodingww2/WEB-INF/classes/webwork.properties

webwork.i18n.encoding=ISO-8859-1

l         Velocity用到webwork.i18n.encoding

l         webwork.i18n.encoding在WebWork2的缺省配置中没有设置,所以需要在webwork.properties中设置

3)使用Velocity实现结果视图:hello.vm

<html>

<head><title>$action.getText('title')</title></head>

<body>

<h1>$action.getText('heading')</h1>

<p>$action.getText('greeting') $now

</p>

<h3>Products</h3>

#foreach( $product in $products )

  $product.description <i>$ $product.price</i><br><br>

#end

<br>

<a href="priceIncreaseForm.action">Increase Prices</a>

<br>

</body>

</html>

l         使用资源束:使用$action.getText()方法获得

l         获得Action属性值:使用$PropertyName获得属性值

l         #foreach指令同样用来遍历集合,不同的是使用变量接收集合中的元素对象,用来进一步访问其属性

4)更改Action配置:ww2/WEB-INF/classes/xwork.xml

            <result name="success" type="velocity">

                <param name="location">/WEB-INF/template/hello.vm</param>

            </result>

<!--

            <result name="success" type="dispatcher">

                <param name="location">/WEB-INF/jsp/hello.jsp</param>

            </result>

-->            

l         修改<result>标记,type属性设为velocity,location参数指定Velocity模版文件

本文地址:http://com.8s8s.com/it/it15980.htm