- 浏览: 543221 次
- 性别:
- 来自: 湖南娄底
文章分类
- 全部博客 (252)
- C#资料 (0)
- java资料 (22)
- 数据库资料 (0)
- Java :开发中遇到的问题 (4)
- 书写属于我的人生 (6)
- spring (6)
- hibernate (16)
- struts (17)
- SSH (5)
- Linux操作系统 (1)
- Ext (5)
- Jquery (9)
- Tomcat部署出错 (2)
- xml (5)
- JSON (5)
- javascript 专题 (5)
- 开发环境配置 (2)
- web 开发 (27)
- Eclipse (7)
- Integration (1)
- 解决方案搜罗 (7)
- 网站收藏 (8)
- 测试框架 (1)
- iframe 专题 (6)
- JSTL (2)
- 各种插件收集 (2)
- 权限设计模型探讨 (1)
- DWR (1)
- log4j (3)
- java (11)
- java 格式化 (1)
- 软件工程 (2)
- 乱码专题 (1)
- UML (4)
- java 设计模式 篇 (1)
- 用法收集 (0)
- sourceforge apache solutions (2)
- Struts2 + JPA + Spring 开发 (1)
- 自定义工具箱 (0)
- IDE (4)
- opencms (1)
- jeecms (1)
- ant (0)
- maven (2)
- 数据库连接池 (0)
- spring MVC (0)
- android (1)
- web-server (1)
- iphone-开发环境 (1)
- iphone-软件开发 (6)
- iPhone-软件设计 (1)
- iphone-应用 (3)
- iPhone-设置 (2)
- iphone-软件开发-设计模式篇 (0)
- iphone-软件开发-OC基础 (9)
- iphone-软件开发- UI篇 (9)
- iphone-软件开发-工具类篇 (1)
- iphone-软件开发-第三方篇 (0)
- iphone-软件开发-特效篇 (2)
- iphone-软件开发-动画篇 (1)
- oracle (1)
- Java-Security (0)
- Three20 UI (1)
- IOS-HOW-TO-专题 (1)
- Mark-Develope Issues (1)
- iphone-软件开发- 资料参考篇 (1)
- C 语言-基本语法 (0)
- Java Servlet (2)
- Eclipse optimization (1)
- IOS Basic (0)
- ecl (0)
- FRONT-HTML (0)
- FRONT-JS (0)
- PHP (0)
最新评论
-
qq_29862421:
[[color=brown]color=yellow][url ...
java 上传图片同时获得图片的宽和高 -
hhb19900618:
NSString <==> NSNumber 之前 ...
OC 常用数据类型之间的转换 -
baohuan_love:
果然能解决问题,感谢分享
Tomcat Error Page配置 与 Error Page在IE下不能转发的问题 -
唐丽梅6313:
很细致。。
键盘样式风格有关设置-iOS开发 -
olived:
哥哥,为什么我的没有破解成功,总是提示许可文件丢失!!QQ:3 ...
[软件测试解决方案] soapUI 4.0.1破解方法
MyEclipse
本文以一登录页面(Login.jsp)为例,讲叙我在JBuilder 2005中如果使用Validator框架来对输入的数据进行验证。
在用户进行主页面前需要进行身份验证,此页面的验证规则为用户名和密码均不能为空,且密码的长度必须大于等于6个字符。
为了达到以上所说的目的,在Struts中有两种办法:
1.使用ActionForm
Bean中的Validate()函数实现,将需要验证的逻辑写入该函数,即在提交表单时会对其进行验证,这中方法的缺点在于必须通过程序代码来实现验证逻辑,如果验证逻辑发生改变,则必重新编写和编译程序代码,此外如果程序中多个ActionFrom
Bean共用相同的验证逻辑,则必须重复编程,降低代码的重用性。
2.使用Validator验证框架实现,它能够克服以上所说的局限,此外它的配置灵活,无需编程。
Validator框架采用两个基于XML的配置文件来配置验证规则,这两个文件为validator-rules.xml和validation.xml,在Struts应用中,这两个文件必须存放在WEB-INF目录下。
下面从页面开始讲述如果创建此登录验证页面。
Login.jsp页面的关键代码如下:
<tr>
<td width="70"
class="TableText">用户名:</td>
<td>
<html:text property="userName" style="TextBoxLong">
</html:text>
<html:errors property="userName"
/>
</td>
</tr>
<tr>
<td class="TableText">密 码:</td>
<td>
<html:password property="password"
style="TextBoxLong"> </html:password>
<html:errors
property="password"/>
</td>
</tr>
说明:
1.用户名文本框的属性名称为userName,对应其ActionFrom中的userName,接下来为显示错误的Struts标签,其属性名称与文本框同名,意为只显示文本框的错误信息,如果没有property,则显示所有错误信息,此标签的作用是一但用户名文本框有错误则通过其进行显示。
2.密码框与用户名文本框基本类似,在此不再叙述。
Login页面创建完成后,即需要创建ActionFrom Bean,名称为LoginActionForm
import
javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.validator.*;
public class LoginActionForm extends ValidatorForm {
private String password;
private String userName;
private Integer id;
public String getPassword()
{
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setId(Integer id) {
this.id =
id;
}
public String getUserName() {
return
userName;
}
public Integer getId() {
return
id;
}
public void reset(ActionMapping
actionMapping,
HttpServletRequest
servletRequest) {
password = null;
userName = null;
}
}
说明:
1.此处的LoginActionForm必须继承自ValidatorForm,而不是ActionForm,原因在于ActionForm不能使用Validator框架完成验证。
2.此LoginActionForm中必须包含有Login.jsp页面中<html:text/>和<html:password/>标签propety属性所指定的属性字段名,即userName和password.
3.除以上所说外,该LoginActionForm就是一个JavaBean类。
定义Action--LoginAction
此Action与普通的Action并无任何区别,均是完成相应的后台逻辑功能,此页面则是读取数据库中的数据与输入的相比较,匹配则转向主页面,否则转向错误页面,具体实现在此就不叙述了。
创建validator-rules.xml文件,制定验证规则
<!DOCTYPE form-validation
PUBLIC
"-//Apache Software Foundation//DTD Commons
Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd
">
<form-validation>
<global>
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
</validator>
<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
msg="errors.minlength">
depends="required"
</validator>
</global>
</form-validation>
说明:
1.每个<validator>元素定义了一个惟一的验证规则,此处一共定义了两个验证规则:名为required的规则和名为minlength的规则。
2.<validator>元素的name属性指定验证规则的逻辑名,此名字必须惟一;classname和method属性分别指定实现验证规则逻辑的类和方法;methodParams属性用来指定验证方法包含的参数,多个参数之间用逗号隔开;msg属性指定来自于Resource
Bundle中的消息key,此程序的Resource
Bundle为ApplicationResources.properties文件,当验证失败时,Validator框架将根据这个消息key到Resource
Bundle中查找匹配的消息文本,默认情况下,Validator框架有一组定义的消息文本,参见下文“定义Resource
Bundle消息文件”,此处的消息也可以自定义,而不使用其默认消息。
3.除上述的属性外,<validator>还有一个depends属性,用于指定在调用当前验证规则之前必须先调用的其他验证规则,例如上面代码中在调用minlength验证前需先调用required验证规则。如果depends包含多个验证,使用逗号分隔,如depends="required,
maxlength",需注意的是如果调用depends规则时验证失败,则不会调用下一个验证规则。
4.下面给出FieldChecks类包含的验证方法,即method后可以写的方法(上面代码中蓝色显示),此外,可以自定义方法。
validateByte、validateCreditCard、validateDate、validateDouble、validateEmail、validateFloat、validateInteger、validateLong、validateMask、validateMinLength、validateMaxLength、validateRange、validateRquired、validateShort。
创建validation.xml文件,此文件可以为应用中的ActionForm配置所需的验证规则,取代在ActionForm类中以编程的方式来实现验证逻辑。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE
form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons
Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd
">
<form-validation>
<formset
language="zh_CN">
<form
name="LoginActionForm">
<field property="userName"
depends="required">
<arg0 name="required"
key="User.name" resource="true"/> ==> <msg name="required"
key="user.required" resource="true"/>
</field>
<field property="password"
depends="required,minlength">
<arg0 key="password.name"
/>
<arg1 name="minlength"
key="${var:minlength}"/>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
说明:
1.<form>元素用于为表单配置验证规则,它的name属性为需要验证的ActionForm的名称,它需要与struts-config.xml中的名称一致,如此处为LoginActionForm.
2.<field>元素用于为表单字段配置验证规则,它的property属性名称需要与Login.jsp页面中的用户名文本框和密码框的property属性名一致。
3.<depends>元素为该字段所采用的验证规则有哪些,如果有多个,则使用逗号分隔。
4.参看以上<msg>一行,<msg>元素指定验证规则对应的消息文本,该消息文本将替代在validator-rules.xml文件中为验证规则配置的默认消息文本。意思即是说,如果上面使用的是<msg
name="required" key="user.required" resource="true"/>,而非<arg0
name="required" key="User.name"
resource="true"/>,则如果验证失败,验证规则将使用msg中key指定的消息,而非默认的errors.required消息(validator-rules.xml中定义,参看上文)。
5.<field>字段可以包含四个附加的子元素,<arg0>、<arg1>、<arg2>、<arg3>,用于替换复合消息中的参数,<arg0>指定第一个替换值,<arg1>指定第二个,依此类推。每个arg元素包含三个属性:name,key和resource,用法与<msg>相似。如上代码中<arg0
name="required" key="User.name"
resource="true"/>意为使用从消息文件ApplicationResources.properties中消息key
User.name取出的文本(Username)来替换默许消息文本errors.required中的参数,使之组合成一句有意思的文本,errors.required的原文本为:{0}is
requuired.
向struts-config.xml中添加validate属性,使相应字段开启验证过程,并配置validator-rules.xml和validation.xml,使之起作用。
<?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>
<form-beans>
<form-bean name="LoginActionForm"
type="personal.system.Login.struts.actionform.LoginActionForm"
/>
</form-beans>
<action-mappings>
<action input="/JSP/Login.jsp"
name="LoginActionForm" path="/LoginAction" scope="request"
type="personal.system.Login.struts.action.LoginAction"
validate="true">
<forward name="succeed"
path="/JSP/index.jsp" />
<forward name="failed"
path="/JSP/Failed.jsp" />
</action>
</action-mappings>
<message-resources
parameter="ApplicationResources" /> ==>指定消息资料文件(Resource
Bundle)的文件名,此处全名文件名即为ApplicationResources.properties
<plug-in
className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
</struts-config>
定义Resource Bundle消息文件--ApplicationResources.properties
password.name=Password ==>定义参数值,password字段使用:<arg0
key="password.name" />
User.name=Username
==>定义参数值,username字段使用:<arg0 name="required" key="User.name"
resource="true"/>
##以下均为Validator框架的默认消息文本,其中的{0},{1},{2}...代表传入参数的取代位置。
errors.required=<font color="red">{0} is
required.</font>
errors.minlength=<font
color="red">{0} can not be less than {1}
characters.</font>
errors.maxlength=<font
color="red">{0} can not be greater than {1}
characters.</font>
errors.invalid=<font
color="red">{0} is invalid.</font>
errors.byte=<font color="red">{0} must be a
byte.</font>
errors.short=<font color="red">{0} must
be a short.</font>
errors.integer=<font
color="red">{0} must be an integer.</font>
errors.long=<font color="red">{0} must be a
long.</font>
errors.float=<font color="red">{0} must
be a float.</font>
errors.double=<font color="red">{0}
must be a double.</font>
errors.date=<font color="red">{0} is not a
date.</font>
errors.range=<font color="red">{0} is not
in the range {1} through {2}.</font>
errors.creditcard=<font color="red">{0} is an invalid credit card
number.</font>
errors.email=<font color="red">{0} is
an invalid e-mail address.</font>
发表评论
-
Struts1.x 国际化
2012-11-15 13:47 0对于一个面向全球的 Web应用程序,按着不同国家的要求显示相 ... -
struts2 convention配置中常见配置选项及说明
2012-08-20 12:47 2331?xml version="1.0" en ... -
研磨Struts2 之 第十三章 国际化
2012-06-20 18:42 1336视频配套PPT,视频地址【 研磨Struts2视频课程 】 ... -
struts2:零配置 之 21.2 约定大于配置
2012-06-19 14:38 640121.2 约定大于配置 21.2.1 ... -
使用struts2中的codebehind插件
2012-06-17 17:21 1301使用struts2中的codebehind ... -
struts2 WARN OgnlValueStack:49 - Error setting expression
2012-02-23 15:53 0今天我遇到下面这样的异常: WARN OgnlValueSt ... -
struts2日期类型转换【转载】
2012-02-10 15:41 913在Struts2中,一般的内置类型都会在由系统自动进行转 ... -
struts2注解
2011-12-19 22:04 2890一、配置web.xml <filt ... -
Struts2 文件上传 之 文件类型 allowedTypes
2011-12-19 21:59 5640Html代码 '.a' : 'a ... -
struts 2支持注解jar包收藏
2011-12-19 21:50 1256附件:struts2-conversion-plugin-2. ... -
为Struts 2应用程序创建进度条(等待页面)
2011-12-17 21:08 1059Struts 2模拟进度条的原理 对于一些需要较 ... -
struts 2 学习曲线
2011-11-17 12:48 960<说明:以后有待整理 ... -
struts2的struts.properties配置文件详解
2011-11-15 22:45 862【IT168 技术文档】 struts.acti ... -
struts2中几种获得request,session等对象的方法
2011-11-15 22:44 11681、通过ActionContext来获得举例代码如下: ... -
在struts1.2中使用拦截器
2011-08-31 20:41 1081要在struts1.2中使用拦截器,必须使用到以下三个包: ... -
html:cancel按钮的作用,cancel按钮,取消按钮
2011-07-24 16:39 1026struts判断标签 html:cancel html ... -
Struts上传多个及N个文件的例子
2011-07-24 11:28 569一。 web.xml文件 Xml代码 ... -
struts通过javascript使按钮变灰为不可用,灰色按钮
2011-07-24 11:23 2060struts页面用javascript来实现使按钮的变灰 ...
相关推荐
### Struts1的Validator验证框架详解 在Java Web开发领域,Struts1作为一个经典且流行的MVC框架,提供了丰富的功能来构建动态Web应用。其中,Validator框架是Struts1用于客户端和服务端表单验证的强大工具,它能...
Struts的Validator验证框架是Java Web开发中常用的一个组件,主要用于处理用户输入的数据验证。它提供了强大的、可扩展的验证规则,使得开发者可以方便地在应用程序中实施数据校验,从而保证了数据的准确性和安全性...
Validator框架是Struts的一个重要组件,主要负责处理用户输入的数据验证,确保数据的完整性和正确性。在本文中,我们将深入探讨如何在Struts中使用Validator框架,并通过三个逐步进阶的实例来理解其工作原理。 首先...
Struts Validator是一个强大的验证框架,它是Apache Struts框架的一部分,用于在Java Web应用程序中实现数据输入验证。这个项目集成了验证规则,使得开发者能够轻松地确保用户提交的数据符合预期的格式和约束,从而...
### Struts Validator 验证框架详细讲解 #### 引言 在Java Web开发中,数据验证是确保应用程序安全性和用户体验的重要环节。Struts框架作为早期流行的MVC框架之一,提供了强大的验证机制——Struts Validator,它...
Struts的Validator框架是Java Web开发中用于处理用户输入验证的一种强大的工具,它与MVC架构中的控制器层紧密结合,提供了一种便捷的方式来确保用户提交的数据符合预设的业务规则。这个框架大大简化了数据验证的过程...
Struts1.3 与1.2向比验证框架部分还是有所区别的,该例子通过一个简单的Email的校验,演示如何通过Struts Validate验证框架进行在页面中生成JavaScripte脚本,进行客户端校验。下完后记得评分,资源分就会回来,还能...
Validator框架是Struts1.x的一个重要组成部分,主要用于处理客户端和服务器端的数据验证。在这个入门例子中,我们将深入理解Validator框架的基本概念、配置以及如何在实际项目中应用。 一、Validator框架简介 ...
此外,Struts1.x的验证框架不仅限于服务器端验证,也可以结合JavaScript进行客户端验证,以提高用户体验。客户端验证可以通过在JSP页面中引入Struts的JavaScript库,然后利用`<html:javascript>`标签生成相应的验证...
Struts Validator是一个强大的验证框架,它是Apache Struts框架的一部分,用于在Java Web应用程序中实现数据验证。这个框架帮助开发者在用户提交表单时确保输入的数据是合法、完整且符合业务规则的,从而提高应用...
Struts Validator是一个强大的验证框架,它是Apache Struts项目的一部分,专为Java Web应用程序设计,用于实现数据输入验证。Struts框架本身是一个MVC(模型-视图-控制器)架构,而Validator则是它的一个核心组件,...
接下来,我们需要配置Validator插件,这是Struts1验证框架的核心。通过`<plug-in>`标签,指定类名为`org.apache.struts.validator.ValidatorPlugIn`,并设置`pathnames`属性指向`validator-rules.xml`和`validation....
Validator验证在Struts应用程序中扮演着至关重要的角色,它能够确保用户输入的数据符合预设的规则,从而提高应用的健壮性和用户体验。在这个实例和文档中,我们将深入探讨Struts Validator的工作原理、配置以及如何...
Validator验证框架,STRUTS动态验证的规则与规范!
1. Validator Framework:Validator Framework 是 Struts2 验证框架的核心组件,负责对用户输入的数据进行验证。Validator Framework 提供了一个通用的验证机制,可以对用户输入的数据进行验证。 2. Validators:...
- Struts2可以与Spring框架无缝集成,此时Validator框架同样适用,Spring的`@Valid`注解可以与Struts2的验证框架一起工作。 7. **.classpath和.project文件** - `.classpath`是Eclipse项目中的配置文件,记录了...
Struts Validator框架是Apache Struts框架的一个组成部分,主要用于处理Web应用程序中的数据验证。这个框架提供了一种方便的方式来定义和执行验证规则,使得开发者能够轻松地在注册或其他表单提交过程中确保用户输入...
Struts是Java Web开发中的一个流行MVC框架,它的核心组件之一是Validator,用于处理表单数据的验证。本文将详细介绍Struts验证器Validator的使用,包括基础配置、自定义验证器的创建,以及如何在Maven项目中管理和...
Validator验证框架是一种强大的工具,它与Struts框架结合使用,用于实现Web应用程序中的数据验证功能。通过使用Validator框架,开发人员可以简化验证逻辑,提高代码的可维护性和重用性。本文将详细介绍Validator框架...
Validator是Struts框架中的一个关键组件,用于处理用户输入验证,确保数据的有效性和一致性。在Struts1.3中,Validator功能得到了进一步的增强和优化,相比Struts1.2,它引入了一些新的特性和改进。 在Struts1.3中...