技术开发 频道

使用StrutsTestCase进行测试驱动开发

        【IT168技术文档】
        Struts和Velocity集成相当的简单, 有Struts的基础的人, 可以说一看就明白
        下面就简单的说下这个过程:

        第一步, 在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> <servlet-mapping> <servlet-name>velocity</servlet-name> <url-pattern>*.vm</url-pattern> </servlet-mapping>
         这样, 所有的以vm结尾的文件, 都会交到Velocity Servlet处理, 上面注释掉的一部分, 是toolbox 是声明应用程序的可用工具的位置.如果要用这个工具的话, 记得把注释去掉哟.我下面就用了, 但为了记得明白, 就不去注释了.嘿

        第二步, 就是把toolbox.xml放到/WEB-INF下喽.
        不过说一句, 如果你想在页面中全部使用Velocity的话, 这个是得加的, 反之, 你想在页面中用Struts标签和Velocity的话, 这个工具就可以省略啦
        这个toolbox.xml在 Velocity 工具下载中找到, 也可以自己写一个啦.
<?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>
        第三步, 修改struts-config.xml

        其实也就是把View层的JSP换成VM而已.
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="searchForm" type="com.puras.test.velocity.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" /> <action path="/search" type="com.puras.test.velocity.SearchAction" name="searchForm" scope="request" input="/pages/search.vm"> <forward name="success" path="/pages/results.vm" /> </action> </action-mappings> </struts-config>
        第四步, 创建Velocity模版
        这个Demo中只用到了两个VM文件,
        分别如下, 里面用到了Velocity的工具哟
search.vm: <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="sea" /> <input type="submit" value="Submit" name="submit" /> </form> </body> </html> results.vm: <html> <head> <title>Results</title> </head> <body> <h1>Book Details</h1> <a href="$link.setForward("welcome")">Search again</a> <h3>$user.name</h3> <b>Name:</b> $user.name<br /> <b>Age:</b> $user.Age<br /> <b>Sex:</b> $user.sex<br /> </body> </html>
0
相关文章