校验框架
1.使用struts自带的校验器
validate方法实现校验的原理:
程序执行到Action的时候,先判断有没有validate方法,如果实现了先执行validate,再执行execute.如果没有就直接执行execute
struts框架的校验原理:
程序执行到Action时,但是还没有执行到里面的方法时将其拦截,转而执行校验器,校验器执行完毕后返回继续执行Action
所以要先做两件事:1.配置拦截器(让Action暂停,执行校验部分) 2.配置校验器(通过配置文件找到对应的校验器以实现校验器功能)
校验器分为:字段校验器(field-specific FieldValidator),普通校验器(PlainValidator)
非字段校验器(Non-Field Validator)可以配置字段校验器和普通校验器
字段校验方式只能配置字段校验器
给Action的字段配置校验器,比如LogginAction.java里有属性username和password,配置文件LogginAction-validation.xml里对两个字段
进行配置:
<validators>
#字段方式
<field name="username">
<field-validator type="requiredstring">
<message>no null</message>
</field-validator>
</field>
#非字段方式
<validator>
<validator type="requiredstring">
#param在申明变通校验器的时候不是必须的,因为普通校验器只返回actionerror(Action级错误)
<param name="fieldName">passeword</param>
<message>password empty.</message>
<validator/>
</validator>
</vaildators>
struts提供的校验器有:
- required
- requirestring
- int
- date
- expression #普通校验器,只能在字段校验方式下使用
- fieldexpression
- email
- url
- visitor
- conversion
- stringlength
- reqex
visistor ,short-circuiting validator可在字段和非字段方式下使用
断路校验器的使用:
非字段校验方式:
<validator type="requiredstring" short-circuit="true">
<param name="fieldName">age</param>
<message>not null</messgae>
</vlidator>
字段校验方式:
<field name="confirm">
<field-validator type="requiredstring" short-circuit="true">
<param name="expression">(password==confirm)</param>
<message><![CDATA[confirm must be the same as the the password....]]></message>
</field-validator>
</field>
自定义校验器
一旦创建了 validators.xml struts.xml不用自动装载default.xml
validators.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
<validators>
<validator name="strandum" class="example.StrNumFeildValidator" />
<validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidators"
/>
</validators>
</xml-body>
由sturts.xml转到自定义的校验器处进行校验处理
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="HelloWorld" class="example.HelloWorld">
<interceptor-ref name="validationWorkflowStack"><!--open the vali option-->
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>
所以在自定义的校验器里可以直接配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Opensymphony Group//XWork Validators 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="Password">
<field-validator type="strandnum">
<message>no null</message>
</field-validator>
</field>
<validator>
<validator type="username">
<param name="fieldName">passeword</param>
<message>password empty.</message>
<validator/>
</validator>
</vaildators>
分享到:
相关推荐
Struts2校验框架应用
struts2校验框架使用心得 希望对初学者有所帮助
struts2的验证框架的示例代码,快速学习和使用struts2验证框架
struts2 验证框架,彻底简化判断页面传递过来的参数,必学内容
适合初学者 struts2验证框架简单示例
struts2 验证框架实例 掩饰了整个验证的过程 并讲解了一些网上没有说过的可能会遇到的错误
struts2验证框架的一些属性和框架验证的语法
source 博文链接:https://callan.iteye.com/blog/185577
Struts2验证框架的配置及validation.xml常用的验证规则
Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插件,而是已经内置到了Struts2中,而且配置起来更为简单方便,功能也更强大。
2、用户名只能使用数字或者字母,长度为6~20之间; 3、密码、确认密码必须是数字和字母,长度为6~20之间; 4、密码、确认密码必须相同; 5、收入必须在0.001~10000.000之间; 6、年龄必须是整数且必须在0~120...
(2):对密码校验的规则是用户不能为空,且只能是数字,长度为8到20之间。 (3):年龄的校验规则是必须是整数,且在1到120之间。 (4):生日的校验规则是必须在1950-1-1到1990-1-1之间。 (5):所有提示信息均要...
NULL 博文链接:https://cdxs2.iteye.com/blog/1931881