Struts2学习笔记二(数据验证)
来源:互联网 发布:最新定位软件 编辑:程序博客网 时间:2024/06/05 15:36
1、在action中重写validate() 会验证,但必须配置<result name="input">/register.jsp</result>,验证出错后前往input。
2、两个级别的错误:this.addActionError("username invalid"); 如果在set这个属性时,因为类型不匹配,抛出错误,但会将属性设置为null或者0,然后去验证
this.addFieldError("username", "invalid"); 可以写在validate中。
一般addFieldError:在set这个属性时,因为类型不匹配,抛出错误,然后写入addFieldError(发生在类型转换阶段)
如果有以上两者存在任何错误,都不会执行execute,转向INPUT页面。
3、可以用struts自带的标签,刷新后仍可以保留原值,但不灵活
<s:form action="register.action" method="post" theme="simple"><s:textfield name="username" label="username"></s:textfield><s:password name="password" label="password"></s:password><s:password name="repassword" label="repassword"></s:password><s:textfield name="age" label="age"></s:textfield><s:textfield name="birthday" label="birthday"></s:textfield><s:textfield name="graduation" label="graduation"></s:textfield><s:submit label="submit"></s:submit></s:form>
4、如果自定义了 mothed=“myExecute”,也可以定义validateMyExecute方法来验证,但两者名字要对应好。(反射实现)
如果validate也存在,也会被执行(永远会被执行),执行顺序为validateMyExecute--->validate
5、自定义Field错误,写个RegisterAction.properties,里面配置invalid.fieldvalue.age=age invalid!!! age属性转换出错是会出现这个自定义错误
这里可以 invalid.fieldvalue.age=年龄不合法!!! 引入中文
6、可以用xml来校验,RegisterAction-validation.xml 注意名字,放同一个包下,错误会放在FieldError下,(一般框架错误放在FieldError,自己错误 放ActionError)
字段优先校验,先设计字段,再设计校验器
<validators>
<field name="username"><field-validator type="requiredstring"><message>can not blank!!</message></field-validator><field-validator type="stringlength"><param name="minLength">4</param><param name="maxLength">6</param><message>must should be ${minLength}-${maxLength}!!!</message></field-validator></field></validators>
7、国际化,package_zh_CN.properties,package_en_US.properties
文件放在同RegisterAction-validation.xml文件目录下,配置key=value ,在验证的xml中
<message key="username.valid"></message> 语言是根据浏览器的语言来选择的
8、其实struts对国际化的支持源于JDK中对国际化的支持。
在classpath下配置 yanlei_en_US.properties yanlei_zh_CN.properties yanlei.properties 配置key=value
ResourceBundle bundle = ResourceBundle.getBundle("yanlei",Locale.CN);
String value = bundle.getString("hello"); 默认根据baseName+loca去取,没有就找默认的yanlei.properties
String result = MessageFormat.format(value, new Object[]{"xxx"});value中使用{0},占位符
9、RegisterAction-validation.xml中,可以校验器优先, 先设置校验器,再在里面设计字段。
<validator type="required"><param name="fieldName">username</param><message>username can not blank!!</message></validator><validator type="stringlength"><param name="fieldName">username</param><param name="minLength">4</param><param name="maxLength">6</param><message>length of username should be between ${minLength} and${maxLength}</message></validator>
10、同时存在 RegisterAction-validation.xml 和validate 先前者,后后者。
- Struts2学习笔记二(数据验证)
- J2EE系列之Struts2学习笔记(二十)--Struts2验证框架(自定义验证)
- struts2学习笔记(6)---数据验证之validate()方法
- struts2学习笔记(7)---数据验证之validateXxx()方法
- Struts2(九):数据验证(二)
- Struts2学习笔记(二)
- struts2学习笔记(二)
- Struts2学习笔记(二)
- Struts2学习笔记(二)
- struts2学习笔记(二)
- Struts2学习笔记(二)
- Struts2学习笔记(二)
- struts2学习笔记(二) 初识Struts2
- struts2学习笔记(二) 初识Struts2
- Struts2学习总结(九):数据验证
- Struts2学习笔记(十九) 验证码
- Struts2 学习笔记 08 简单的数据验证
- 数据验证Struts2框架类验证,方法验证等学习笔记
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- UIalterview 添加后很快就消失,按钮的方法使用扩展 特殊字体设置
- spin_lock & mutex_lock的区别? .
- WebDriver的常用方法
- 教你步步为营掌握自定义ViewGroup
- Struts2学习笔记二(数据验证)
- 1:自动化测试环境--Eclipse环境搭建
- SSH配置
- 重复注解
- hdu1083 Courses--最大匹配 & HK算法
- Hashmap实现原理
- boost之路三 函数对象
- Activity界面显示全解析
- 制作Windows启动U盘