Velocity与Struts集成
来源:互联网 发布:管理快递的软件 编辑:程序博客网 时间:2024/05/16 05:29
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8"); // 设置编码方式
Person person = new Person();
PersonService personDao = new PersonService();
List personList = personDao.queryPersons(person); // 查询
HttpSession session = request.getSession();
session.setAttribute("personList", personList); // 将查询结果列表放到当前的Session中
return mapping.findForward("success"); // 跳转到success代表视图(.vm)
}
}
这时,在看一下如何在struts-config.xml中配置Action和目标视图,其实和普通的Struts配置是一样的,只是把以前使用的JSP作为视图,前部替换为Velocity视图,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings >
<action
path="/searchPerson"
scope="request"
type="org.shirdrn.struts.action.SearchPersonAction">
<forward name="success" path="/templates/show.vm"></forward>
</action>
</action-mappings>
<message-resources parameter="org.shirdrn.struts.ApplicationResources" />
</struts-config>
这里,show.vm是Velocity模板,就是使用表格显示数据,内容如下所示:
<html>
<head>
<title>Velocity与Servlet集成</title>
</head>
<body border="2" borderColor="#000000">
<h1>Velocity与Servlet集成的例子</h1>
<table bgcolor="#32CD32" align="center" width="60%" cellspacing="1" cellpadding="1">
<tr>
<td>ID</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>住址</td>
</tr>
#foreach($person in $personList)
<tr>
<td>$!person.id</td>
<td>$!person.name</td>
<td>$!person.gender</td>
<td>$!person.age</td>
<td>$!person.addr</td>
</tr>
#end
</table>
</body>
</html>
要使用Velocity的toolbox.xml中配置当前可用的工具集,其实toolbox.xml中指定的工具都可以在本应用中加载使用。
工具箱toolbox.xml中配置了Velocity与Struts集成可用的工具,具体内容如下所示:
<?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>
注意:在本文中并没有使用到toolbox.xml中指定的任何一个工具,将其去掉仍然能够测试运行。
最后,就是配置web.xml了,一定要映射请求*.vm视图时指定的org.apache.velocity.tools.view.servlet.VelocityViewServlet,这点很重要,否则无法派发视图。web.xml的配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</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>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
</web-app>
现在,可以测试Velocity与Struts集成的结果了。
在浏览器地址栏中键入链接:
http://localhost:8080/VelocityStruts/searchPerson.do
可以看到视图显示的列表结果,如下所示:
Velocity与Struts集成的例子
ID姓名性别年龄住址200804140001shirdrnmale25ChangChun200804150001Poolinafemale24Changchun200804150002Selibymale25Changchun200804150006Koppafemale24Changchun200804150008Justinmale24New York200804150009Soloorfemale24London200804150015Sujnnmale22Shanghai200804160001SAgoop 200804160002SAgoop 200804160003SAgoop 200804160004SAgoop 200804160005SAgoop 200804160006SAgoop 200804160007SAgoop 200804160008SAgoop 200804160009SAgoop 200804160010SAgoop 200804160011SAgoop 200804160012SAgoop 200804160013SAgoop 200804160014SAgoop 200804160015SAgoop 200804160016SAgoop 200804160017SAgoop 200804160018SAgoop 200804160019异域王者男20Beijing200804160021异域王者男20Beijing200804160022风平浪静female22长春200804160023风平浪静female22长春200804160024异域王者男20Beijing200804170001异域王者female20Beijing200804170030飞鱼男20Beijing200804170032飞鱼男20Beijing200804170033飞鱼男20Beijing200804170035飞鱼男20Beijing心得总结
Velocity与Struts集成,Velocity主要是根据toolbox.xml中指定的工具来替代Struts,比如替代Struts标签,因为Velocity模板非常简洁。
Velocity与Struts集成,对于Velocity的属性文件velocity.properties使用Velocity自带的,而无需我们自己去配置。如果单独配置Velocity的属性文件velocity.properties,对于中文需要在其中设置编码。而Velocity与Struts集成了,编码的设置可以放到Action中进行设置,或者使用Servlet为本应用统一设置一个单独的编码过滤器。
Velocity与Struts集成,不需要单独进行模板的获取(比如单独使用Velocity,像在文章 VelocityServlet的应用 中需要通过Velocity上下文显式获取Velocity模板)。
- Velocity与Struts集成
- Velocity与Struts集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成1
- Struts 与 Velocity 的集成2
- Struts 与 Velocity 的集成3
- Velocity 1.5 与 Struts 2.0 的集成
- Struts 与 Velocity 的集成(转)
- Struts与Velocity模板引擎集成
- Struts + Velocity的集成
- Struts集成velocity
- 五步轻松替代JSP Struts与Velocity集成
- 五步轻松替代JSP Struts与Velocity集成[转]
- Struts与Velocity集成 五个步骤替代JSP
- vc中键盘事件对应的值
- Java常用算法分析
- DLL高级技巧
- CUDA_VS_Wizard--CUDA配置
- JDeveloper ERROR: No j2ee modules detected in EAR archive
- Velocity与Struts集成
- JS的document 详细学习
- void main(void) - the Wrong Thing
- Sqlserver:从XML文件中读取配置信息
- 关于VelocityServlet应用时velocity.properties作为通用属性文件
- IOCP--Windows服务器编程
- 喜欢看的电影
- MS SQL Server查询优化方法
- linux fastboot