- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2_校验
Struts2___校验
Struts2支持的校验方式有手工编码和使用校验框架
手工编码校验
简单验证:
在Action方法中校验,使用addFieldError添加错误信息,
视图通过 s:fielderror/ 显示错误信息
public String execute() throws Exception {
String username=userVO.getUsername();
if(null==username || username.trim().length()==0){
addFieldError(userVO.username, getText(error.username.required));
}
if(this.hasFieldErrors()){
return INPUT;
}
return SUCCESS;
}
2.validate()验证:
继承ActionSupport类,重写vlidate方法 @Override
public void validate() {
String password=userVO.getPassword();
if(null==password || password.trim().length()5){
addFieldError(userVO.password, 密码长度须5位以上);
}
}对客户提交的相对应的xxx()方法验证
由DefaultWorkflowInterceptor拦截自动调用
接着调用hasErrors()查看是否有错误 ,如有返回input页面public void validateSaveUser(){
String phone=userVO.getPhone();
if(null!=phone !.equals(phone) ){
if(!Ppile(^0731\\d{8}$).matcher(phone).matches()){
addFieldError(userVO.phone, 电话格式不正确);
}
}
}Struts2编码校验输入数据UML时序图
使用验证框架:
struts2内置支持校验框架验证框架由AnnotationValidationInterceptor拦截器调用
分为客户端校验和服务端校验
客户端校验: 在HTML页面自动生成JavaScript校验代码(不推荐使用)
服务端校验:在数据提交到服务器,在Action处理之前进行校验
服务端校验
:
提供的校验文件的命名:Action类名-validation.xml(与Action类同一目录)内置校验器xwork default.xml定义
equired
requiredstring
int
long
short
double
date
expression
fieldexpression
email
url
visitor
conversion
stringlength
regex
conditionalvisitor
xml校验文件支持的语法两种:
field语法
validator语法 !-- 使用field语法 指定需要校验的字段名--
field name=userVO.username
!-- 使用requiredstring验证器,确保userVO.username字段值不为null,也不为
short-circuit 短路验证
--
field-validator type=requiredstring short-circuit=true
!-- param参数名称 到相应的校验器类源码中查找 --
param name=trimtrue/param
message key=error.username.required/
/field-validator
!-- 使用stringlength验证器,确保userVO.username字段值的字符长度在4到12之间 --
field-validator type=stringlength
!-- param参数名称 到相应的校验器类源码中查找
向stringlength验证器实例传递minLength和maxLength参数
--
param name=minLength4/param
文档评论(0)