Struts2的输入效检:
1,Action继承ActionSupport类重写validate方法,将不合法的验证提示信息添加到addFieldError方法中
2,为该Action配置result为input的返回页面即(<result name="input">/index.jsp</result>)。
因为验证失败的话将返回"input"。
说明:
1,若用户输入的信息格式不对则类型转化失败,遇到类型转换错误的时候(也就是说不能进行类型转换),
struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面。
故页面为产生一此不友好的错误提示信息。
2,有两种方法解决这个问题:
一,定义全局类型转换错误提示信息:
1,在struts.xml中加国际化文件信息:
<constant name="struts.custom.i18n.resources" value="message"></constant>
2,在src下面新建message.properties文件并添加提示内容:xwork.default.invalid.fieldvalue= {0} error!
二,定义局部类型转换错误提示信息:
1,以Action的类名建立一个properties的文件如:RegisterAction.properties
2,在RegisterAction.properties文件里添加该Action某个属性转换错误的提示信息如:
invalid.fieldvalue.age = 年龄格式错误!
invalid.fieldvalue.birthday = 出生日期格式错误!
invalid.fieldvalue.graduation = 毕业时间格式错误!
3,类型转换与输入校验的流程
1. 首先Struts2对客户端传来的数据进行类型转换
2. 类型转换完毕后再进行输入校验
3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)
4,对于int,float等类型转化错误的话Struts2将它赋值为0,对String等对象属性转化错误Struts2将赋值为null
注意:如果类型转换不成功,也同样要进行输入校验
4,在Action也可以将错误信息添加到addActionError()里面去,则在页要要用<s:actionerror/>读取错误提示信息
5,使用Struts2的标志不好排版那是因为Struts2文签默认有一个主题,若将它的了theme值设置为theme="simple"
则Struts2标签没有样式,也没有错误码提示信息除非你在页面上添加<s:textfield>或<s:actionerror/>
<s:textfield>输出的是addFieldError里面的信息,<s:actionerror/>输出的是addActionError里面的信息
Struts2的输入效检
最新推荐文章于 2023-09-07 21:54:04 发布