Struts 2 输入检验
来源:互联网 发布:蒸膳美分店网络 编辑:程序博客网 时间:2024/04/28 18:25
Struts 2 输入检验
1 Struts 2 手动完成输入检验
1. 1 Struts 2通过继承 ActionSupport 类并重写Validate()方法
public class ValidateAction extends ActionSupport{ private String name; private String pass; public void setName(String name){ this.name=name; } //省略getXxx()和setXxx()方法 public String execute(){ return SUCCESS; } @Override public void validate(){ if(getName()==null || getName().length()<6 || getName().length()>15){ addFieldError("name","用户姓名的长度不符合要求"); } if(getPass()==null || getPass().length()<8 || getPass().length()>20){ addFieldError("pass","用户密码的长度不符合要求"); } } }
validate()方法中发现又不合法输入时,会调用其父类的addFieldError()方法,当执行execute()方法之前,系统会检查有没有addFieldError(),如果没有,则执行execute()方法,返回SUCCESS逻辑视图。
1.2 重写 validateXxx()方法
public class ValidateAction extends ActionSupport{ private String name; private String pass; //省略getXxx()和setXxx()方法 public String execute(){ return SUCCESS; } public String login(){ return SUCCESS; } public void validateLogin(){ if(name !=null && !Pattern.matches("\\w{6,15}",name.trim())) { addFieldError(name,"validateXxx()方法被执行:姓名不合法"); } } public void validate(){ if(name !=null && !Pattern.matches("\\w{6,15}",name.trim())) { addFieldError(name," validate () 方法被执行 :姓名不合法"); } } }
validateXxx()方法专门校验xxx()处理逻辑,执行过程和execute()一样。当同时重写validateXxx()和validate()方法时,两者都会起到校验的效果,validateXxx()会在validate()之前执行。
2 Struts 2 内置校验器
2.1 字段校验器配置风格
<validators> <field name = "被校验的字段"> <field-validator type = "校验器类型名"> <param name = "参数名">参数值</param> <!-- 可以有多个参数 --> <message> 检验失败时提示信息</message> </field-validator> </field> </validators>
2.2 非字段检验器配置风格
<validator type = "检验器类型名"> <param name = "fieldName">需要被检验的字段</param> <param name = "参数名">参数值</param> <!--可以有0个或多个param参数--> <message> 检验失败时的提示信息</message> </validator>
常用内置检验器
(1)必填检验器
required 必填校验器,要求字段必须有值
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数requiredstring 必填字符串校验器,要求必须有值且长度大于0,即不能是空字符串。默认会去掉字符串前后空格参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数参数trim:该参数为可选参数,用于指定是否在校验之前对字符串进行整理。
(2)整数校验器
int 整数校验器,可以配置整数在指定的范围内
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数参数 min:指定字段值的最小值,该参数为可选参数 max:指定字段值的最大值,该参数为可选
(3)字符串长度校验器
stringlength字符串长度校验器,用于检验字段中字符串长度是否在指定的范围
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数 参数trim:该参数为可选参数,用于指定是否在校验之前对字符串进行整理。 参数 maxLength:用于指定最大字符串长度,该参数为可选 参数 minLength:用于指定最小字符串长度,该参数为可选
(4)双精度校验器
double 双精度校验器,可以配置双精度数在指定的范围内
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数 参数 minInclusive:指定字段数值所接受的最小值,该参数为可选 参数 maxInclusive:指定字段数值所接受的最大值,该参数为可选 参数 minExclusive:指定字段数值被排除的最小值,该参数为可选 参数 maxExclusive:指定字段数值被排除的最大值,该参数为可选
(5)表达式校验器
expression 表达式校验器,它是一个非字段校验器,当参数expression计算的值为true时,校验通过,否则返回提示。
参数 expression:该参数为一个逻辑表达式,该参数使用OGNL表达式,并基于值栈计算,返回一个Boolean 类型值。
(6)表达式校验器
requiredstring 字段表达式校验器,当参数expression计算的值为true时,校验通过,否则返回提示。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数 参数 expression:该参数为一个逻辑表达式,该参数使用OGNL表达式,并基于值栈计算,返回一个Boolean 类型值。
(7)网址校验器
url 网址校验器,要求被检查的字段如果非空,则必须是合法的URL地址。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
(8)邮件地址校验器
email 邮件地址校验器,要求被检查的字段如果非空,则必须是合法的邮件地址。
参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数
(9) 复合类型校验器
visitor复合类型校验器
该校验器用来校验Action中定义的复合类型属性,支持简单的复合类型、数组类型。Map等集合类型。 参数fieldName:该参数指定校验的字段名称,如果是字段校验,则不用指定该参数 参数 context:校验器引用的上下文,可选参数 参数 appendPrefix: 为字段校验信息加前缀,可选参数
0 0
- Struts 2 输入检验
- struts检验
- struts检验
- struts的检验
- javascript检验输入有效性
- Jquery检验输入值
- struts2的输入检验
- struts 2的输入校验
- Struts输入校验(2)
- Struts 2 的输入校验
- JS检验输入特殊字符
- Struts 2读书笔记-----使用Struts 2的输入校验
- Struts 2读书笔记-----使用Struts 2的输入校验
- struts里的检验问s
- struts检验信息格式与反馈
- Struts 2 的输入校验(2)
- Struts 2框架的输入校验
- Struts2学习笔记6:Struts2输入检验
- 【SPOJ COT2】Count on a tree II,树上莫队
- POJ 3261 Milk Patterns
- 物联网相关知识与应用
- java 源码学习1-String
- POJ(2503)(两种方法,二分,Map)
- Struts 2 输入检验
- java String.split()函数的用法分析
- 基于注解的SpringMVC基本配置
- 旅行家的预算
- 关于Intent的知识
- Spark Streaming小结
- Windows10无法调节亮度
- 图像置乱
- Linux命令行下快捷键