在Struts中验证框架的运行机制

原创 2006年06月07日 15:22:00
用commons Validator添加验证
为了在Struts中使用验证,执行以下几步:
1. 在struts-config.xml中添加ValidatorPlugin。
2. 创建validation.xml,指定lastName为必填字段。
3. 把DynaActionForm改用DynaValidatorForm。
4. 仅为save()方法设置验证(validation)。
5. 在message.properties中添加validation errors。
 
 
struts-config.xml中添加ValidatorPlugin
配置Validatorp plugins,添加以下片断到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>
从这里你可以看出,Va l i d a t o r会查找W E B - I N F下的两个文件v a l i d a t o r- r u l s . x m l
validation.xml。第一个文件,validator-rules.xml,是一个标准文件,作为Struts的一部分发
布,它定义了所有可用的验证器(validators),功能和客户端的javascript类似。第二个文件,
包含针对每个 form的验证规则。
创建validation.xml,指定lastName为必填字段
validation.xml文件中包含很多DTD定义的标准元素。但你只需要如下所示的<form><field>,
更多信息请参阅Validator的文档。在web/WEB-INF/validation.xml中的form-validation标签
之间添加form-set元素。
<formset>
<form name="userForm">
<field property="user.lastName" depends="required">
 
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
<arg0 key="user.lastName"/>
</field>
</form>
</formset>
DynaActionForm 改为 DynaValidatorForm
struts-config.xml中的DynaActionForm改为DynaValidatorForm
<form-bean name="userForm"
type="org.apache.struts.validator.DynaValidatorForm">
...
save()方法设置验证(validation)
使用Struts DispatchAction弊端是,验证会在映射层(mapping level)激活。为了在listedit
页面关闭验证。你必须单独建一个"validate=false"的映射。例如,AppFuseUserAction
两个映射:"/editUser""/listUser"。然而有一个更简单的方法,可以减少xml,只是多了一些
java代码。
1. "/user"映射中,添加validate="false"
2. 修改UserAction中的save()方法,调用form.validate()方法,如果发现错误,返回编辑页
面。
if (log.isDebugEnabled()) {
log.debug("entering 'save' method...");
}
// run validation rules on this form
ActionMessages errors = form.validate(mapping, request);
if (!errors.isEmpty()) {
saveErrors(request, errors);
return mapping.findForward("edit");
}
DynaActionForm userForm = (DynaActionForm) form;
dispatchAction运行时,与附带一个属性的两个映射相比,这样更加简洁。但用两个映射
也有一些优点:
验证失败时,可以指定转向"input"属性。
在映射中可以添加"role"属性,可以指定谁有访问权限。例如,任何人都可以看到编辑
(edit)页面,但只有管理员可以保存(save)
3. 运行ant deploy重新载入(reload),尝试添加一个新用户,不要填写lastName。你会看到
一个验证错误,表明lastName是必填字段,如下所示:
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
2.10. 运行ant deploy命令的结果
Struts Validator的另一种比较好的特性是客户端验证(client-side validation)
4. f o rm标签( w e b / u s e r Fo r m . j s p )中添加" o n s u b m i t "属性,在f o rm末尾添加
>html:javascript>
<html:form action="/user" focus="user.firstName"
onsubmit="return validateUserForm(this)">
...
</html:form>
<html:javascript formName="userForm"/>
现在如果运行ant deploy,试图保存一个lastname为空的用户,会弹出一个JavaScript
示:"Last Name is required"。这里有一个问题,这个带JavaScriptformvalidator
JavaScript功能都载入了页面。再好的方法是,从外部文件导入Javascript。参见第5章。
恭喜你!你已经开发一个web应用程序,它包含数据库交互,验证实现,成功信息和错误信息的
显示。第4章,将会把这个转向使用Spring框架。第5章中,会添加异常处理,文件上传,邮件发
送等特性。第6章会看一下JSP的替代技术,在第7章,会探讨DAO的不同实现,包括iBATIS,JDO
SpringJDBC
 

struts中的验证框架的使用

步骤**1 环境配置:** 首先要为struts加入Validator支持 lib包:加入validator所需的jar包 配置文件:struts-config.xml里...
  • sushauai
  • sushauai
  • 2016年03月17日 10:24
  • 460

Struts2框架运行机制

文章属于入门级水平,重要事情说三篇,入门级,入门级,入门级 1.struts2=struts1+webwork 是实现MVC表示层的web框架 运行机制: 1>.客户端在浏览器中输入一个url地址...
  • fei641327936
  • fei641327936
  • 2016年07月23日 10:18
  • 447

Struts2运行机制

一、概述      Struts2的核心是一个Filter,Action可以脱离web容器,那么是什么让http请求和action关联在一起的,下面我们深入源码来分析下Struts2是如何工作的。...
  • huxian1234
  • huxian1234
  • 2013年12月03日 04:14
  • 1788

Struts2验证框架配置好后,验证不起作用的几种可能

Struts2的验证框架有时不起作用,不要慌张,无外乎以下几种可能:   1. 命名是否符合约定:   -validation.xml --validation.xml ...
  • greensurfer
  • greensurfer
  • 2012年05月05日 23:42
  • 3237

Struts运行机制

1. 当客户端发送一个URL请求(http://localhost/webappname/actionname),Tomcat接收该请求 2. Tomcat找到相应的webapp下的WEB-INF/...
  • wuha0
  • wuha0
  • 2012年03月23日 15:42
  • 243

Struts2服务器端的验证(验证框架)

一、struts2验证框架介绍 Struts2中提供了一套服务器端验证的框架,通过验证框架可以实现对数据数据的验证。 struts2是webwork演变而来的,其验证框架正是webwork的那...
  • Speed_Pig
  • Speed_Pig
  • 2016年12月27日 10:20
  • 1259

Struts中的验证框架

我们要实现这个验证的话, 1.我们的Action需要继承ActionSupport 这个类,然后重写validate这个方法,或者写一个validateXxx方法。 重写validate()这个方...
  • qq786305898
  • qq786305898
  • 2017年09月12日 20:48
  • 50

struts2(三)---struts2中的服务端数据验证框架validate

struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证。ActionSupport类提供了一个validate()方法,当我们需要在某一个actio...
  • u012116457
  • u012116457
  • 2015年09月06日 20:21
  • 2561

Struts2 Validation验证框架错误提示信息的显示位置

Struts2 Validation校验框架错误提示信息的显示位置 Struts2提供了一个校验框架Validation,通过该框架可以仅在配置文件中配置校验字段以及校验规则就可以达到相应校验效果...
  • drohe
  • drohe
  • 2017年06月09日 21:57
  • 1153

深入理解struts的运行机制

在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化。也谈不上优化,只是加上了点自己...
  • u013132051
  • u013132051
  • 2016年10月26日 20:02
  • 6074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Struts中验证框架的运行机制
举报原因:
原因补充:

(最多只允许输入30个字)