简单OA项目笔记(3):Struts校验框架

来源:互联网 发布:优品会展软件 编辑:程序博客网 时间:2024/04/28 13:57


    第一次接触struts2的校验框架,不算难。

    今天看到两种用法:一是把校验文件放在action的相同目录下;二是action所在目录下放一个,和bean所在的目录下各放一个。

    第二种等于能自己给校验的方法起名字,其实效果类似。



一:单个validation.xml的校验

在action的所在的包下,建一个:“action名称-方法名-validation.xml”
requiredstring是校验方法,是必须的
message提示信息

<validators><field name="user.firstname"><field-validator type="requiredstring"><message>错误提示信息:required first name</message></field-validator></field></validators>

因为action里聚合了private User user;

所以<field name 都是以“user.”开头的。

type="int"是校验的类型,这里是在一个数值区间之中

<field name="user.age"><field-validator type="required"><message>required age</message></field-validator><field-validator type="int"><param name="min">1</param><param name="max">130</param><message>age should be between ${min} and ${max}</message></field-validator></field>



二:action所在目录下和bean所在的目录下各放一个validation.xml

action包下的校验文件:

 type="visitor"表名用visitor的校验方法

"context"是校验名称,这部分出现在第二个xml的文件名里

"appendPrefix">true<> 开启提示信息的开头部分

<validators><field name="user"><field-validator type="visitor"><param name="context">user</param><param name="appendPrefix">true</param><message>user's </message></field-validator></field></validators>



bean所在目录下的校验文件:

在bean里新建第二个校验xml
“bean名称-第一个校验xml中的校验名称-validation.xml”
<field name="firstname"  不再是user.,剩下都一样

<validators><field name="firstname"><field-validator type="requiredstring"><message>required first name</message></field-validator></field><field name="age"><field-validator type="required"><message>required age</message></field-validator><field-validator type="int"><param name="min">1</param><param name="max">150</param><message>age should be between ${min} and ${max}</message></field-validator></field></validators>




三:输入改正的信息之后,表单不能提交

光这样用验证框架后,检查到输入错误后有个bug:就是输入改正之后再提交,错误信息一直重复出现,而且表单不能提交到action


原因上一篇文章分析过了,

是现在action现在由spring生成(而不是struts),
spring配置文件中action的bean不配置scope的时候,默认是单例,也就是说所有请求都是一个action处理,才会出问题
所以要配<bean id="saveUserAction" class="com.xxx.action.xxxAction" scope="prototype">
这样验证之后才能正确显示,修改之后才能马上正确提交













原创粉丝点击