Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
2007-10-27 17:47
591 查看
Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
1.概述
Struts大家都很熟悉,不再详细介绍,另请请参阅1. Pragmatic Struts :SpringSide推荐的最新最Pragmatic用法。
2. SpringSide的Struts封装,SpringSide封装的Struts的CRUD Action基类,默认拥有CRUD的方法,大家可以自行扩展,或者这参考其思路重新封装。
1.1 参考书籍
《Jakarta Struts Cookbook》2005 O'Reilly,在铁手的博客上有部分中文翻译。
2. Spring与Struts的整合
2.1 在struts-config.xml中加入ContextLoaderPlugIn
ContextLoaderPlunIn是Struts 1.1+ 的插件,用来为 Struts 的 ActionServlet 加载 Spring的Application Context。这个Context引用 WebApplicationContext (由 ContextLoaderListener 加载) 作为它的父Context。默认的context文件是映射的 ActionServlet 的名字,加上 -servlet.xml后缀。 如果 ActionServlet 在 web.xml 里面的定义是 action, 那么默认的文件就是 /WEB-INF/action-servlet.xml。格式如下:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
2.2 在Struts-config.xml中加入DelegatingRequestProcessor
用Spring的DelegatingRequestProcessor重载Struts 默认的 RequestProcessor。这样当收到一个针对Action的请求时,DelegatingRequestProcessor会自动从Spring Context中查找对应的Action Bean。格式如下:
<controller> <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/> </controller>
2.3 建立struts-config.xml与action-servlet.xml中Action与Bean的对应关系
连接 struts-config.xml 和 action-servlet.xml 中的 Action与Bean的桥梁是action 的"path"和 bean 的"name"。如果你在 struts-config.xml 文件中有如下配置:<action path="/users" .../>你必须在 action-servlet.xml 中将 Action bean 的名字定义为 "/users":<bean name="/users" class="..."/>
设定完以后,action的type属性可以省略不写,因为所有的Action都在Spring Context中寻找。注意这里bean用的是name属性,而不是id,因为"/"在id属性中是非法字符。
3.输入校验与消息显示
校验依旧比较麻烦,使用commons-validator 1.3版,使用struts 1.3.5带的validator-rules.xml。可选的validator 以 validator-rules.xml 中定义的为准。3.1 定义
注意validaton.xml的头声明需改为1.3<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">
编写validation.xml,如
<form name="userForm"> <field property="name" depends="required"> <arg0 key="user.name"/> </field> </form>
并在resources/i18n/messages.properties 里加入需要的message,如user.name = User Name
struts-config.xml 加入
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in>
3.2 客户端JS校验:
在每个form.jsp的form 加入onsubmit="return validateUserForm(this)", 其中UserForm是validation.xml中的form名在jsp最后加入
<html:javascript formName="userForm" staticJavascript="false" cdata="false"/> <script type="text/javascript" src="<c:url value="/scripts/validator.jsp"/>"></script>
3.3 服务端校验:
ActionMessages errors = form.validate(mapping, request); if (!errors.isEmpty()) { saveErrors(request, errors); return mapping.findForward("edit"); }
3.4 出错信息的显示:
信息参见message.jsp,可显示信息或错误。在希望显示信息的地方加入<%@ include file="/commons/messages.jsp" %>
如果希望同时在列里面显示出错,加入<span class="fieldError"><html:errors property="user.name"/></span>
相关文章推荐
- Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
- Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
- Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
- Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
- Struts,Hibernate,Spring整合开发中 DATE类型存入和显示问题
- Spring与Struts的整合之一:使用ActionSupport代替Action
- Struts2和Spring整合时使用Struts-plugin的注意点
- 使用 Spring 更好地处理 Struts 动作(三种整合 Struts 应用程序与 Spring 的方式)
- 使用MyEclipse整合Struts+Spring+Hibernate时,在“applicationContext.xml”中提示class"org.apache.commons.dbcp.Basi
- 消息队列 RabbitMQ 与 Spring 整合使用
- 使用 Spring 更好地处理 Struts 动作三种整合 Struts 应用程序与 Spring 的方式[摘]
- 使用struts、hibernate、spring进行框架整合流程详细说明
- 使用spring整合hibernate、struts
- 使用spring整合hibernate、struts后的删除功能
- 使用struts、hibernate、spring进行框架整合流程详细说明
- 使用MyEclipse整合Struts+Spring+Hibernate时,在“applicationContext.xml”中提示class"org.apache.commons.dbcp.Basi
- 使用MyEclipse整合ssh(Struts、Spring、Hibernate)三大框架(环境搭载+实例源码下载)
- Knockout: 实践CSS绑定和afterkeydown事件, 给未通过校验的输入框添加红色边框突出显示; 使用afterkeydown事件自动将输入转大写字母.
- ssh整合使用struts-spring-pluing
- 8 -- 深入使用Spring -- 7... Spring 整合 Struts 2