框架学习之struts2-04数据类型转化和数据校验
来源:互联网 发布:精选淘宝怎么卸载 编辑:程序博客网 时间:2024/05/18 02:48
数据类型转化和数据校验的原理和流程
struts2数据校验的基本原理
- 当用户发送请求经过一系列的过滤器之后,会由动态代理生成相应的拦截器
- 由拦截器进行数据的校验,如果数据不合法将产生错误信息,并且返回一个逻辑结果INPUT
- 我们可以将错误信息自定义,然后通过struts2标签输出到页面
- 我们也可以自定义数据校验器和转换器
操作流程
- 自定义校验器
1.创建一个自定义校验器类继承FieldValidatorSupport类
2.重写validate()方法,方法体内部进行数据校验,如果不符合条件在action中放入错误字段名,会自动产生错误信息,在页面上就可以输出此字段的错误信息,同样也可以自定义错误信息
3.在src根目录下创建一个validators.xml文件,里面的validator的class属性指向这个校验器 - 自定义转换器
1.创建一个自定义转换器继承StrutsTypeConverter类
2.重写convertFromString()和convertFromString()方法,在前者的方法体中做数据转换,直接返回一个我们想要转换的类型即可
3.可以在src下创建一个xwork-conversion.properties文件作为全局的转换器配置,用需要目标转换类(包名.类名)指向该转换器;或者在同一个包级别中配置一个文件,名字叫XxxAction-conversion.properties,里面用目标action名指向这个转换器 - 自定义校验xml文件
在同一个包级别下创建一个XxxAction-目标action名-validation.xml文件,在该文件中配置需要校验的字段名的配置(举例说明,member为操作对象)
<validators> <field name="member.loginId"> <field-validator type="requiredstring"> <message>会员账号不能为空!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">20</param> <message>账号的字符数必须在${minLength}到${maxLength}位之间</message> </field-validator> <field-validator type="regex"> <param name="regex"><![CDATA[\w*]]></param> <message>账号中的字符只能出现“字母”、“数字”或“下划线”!</message> </field-validator> </field> <field name="member.loginPsw"> <field-validator type="requiredstring"> <message>会员密码不能为空!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">8</param> <param name="maxLength">20</param> <message>账号的字符数必须在${minLength}到${maxLength}位之间</message> </field-validator> </field> <field name="loginPsw2"> <field-validator type="requiredstring"> <message>确认密码不能为空!</message> </field-validator> <field-validator type="fieldexpression"> <param name="expression"><![CDATA[member.loginPsw == loginPsw2]]></param> <message>确认密码错误:两次密码不一致!</message> </field-validator> </field> <field name="member.height"> <field-validator type="required"> <message>会员身高不能为空!</message> </field-validator> <field-validator type="double"> <param name="minInclusive">1.0</param> <param name="maxInclusive">2.5</param> <message>会员身高必须在${minInclusive}到${maxInclusive}米之间</message> </field-validator> </field> <field name="member.birthdate"> <field-validator type="date"> <param name="min">1980-1-1</param> <param name="max">2000-12-31</param> <message>会员出生日期必须在${min}到${max}之间</message> </field-validator> </field> <field name="member.zipcode"> <field-validator type="zip"> <message>会员的邮编号码格式错误,必须是6位数字</message> </field-validator> </field> </validators>
自定义拦截器
1. 创建一个自定义拦截器类实现接口interceptor或继承抽象类AbstractInterceptor
2. 重写intercept(ActionInvocation actionInvocation)方法
3. 利用传递的参数actionInvocation获得servletAPI进行处理扽登陆访问权限验证等需求
4. 在xml文件中进行配置,声明自定义的拦截器,然后需要注册启用
5. 可以将其设置成默认的拦截器,这样就是默认在该包命名空间下的访问都会经过这个拦截器
6. 在配置默认的拦截器时注意:
a. 要改变之前使用的默认的拦截器栈,重新定义一个拦截器栈,将自定义的和struts2原始默认的拦截器一起配进去
b. 设置好后仍然需要注册启用
c. 在要使用struts2原始的默认拦截器设置参数时就用自定义拦截器栈名 . dafualtStack声明
7. 在配置自定义拦截器的时候,可以配置不过滤的目标方法,交给struts2来做这个过滤工作,我们只需要做具体的逻辑判断即可(如实现免登陆的功能)
阅读全文
1 0
- 框架学习之struts2-04数据类型转化和数据校验
- struts2之数据校验
- (Struts2学习篇) Struts2数据校验之二
- Struts2.0 (开发之三)--数据校验框架--CTO
- Struts2 校验框架学习笔记
- Struts2 校验框架学习笔记
- Struts2 校验框架学习笔记
- Struts2 校验框架学习笔记
- struts2校验框架学习笔记
- Struts2学习总结 ---- 数据校验
- struts2之数据校验器
- Struts2输入校验之用校验框架校验
- (Struts2学习篇) Struts2数据校验之一
- struts2学习之---输入校验
- ABP框架学习之——数据校验
- Struts2中的数据校验(二[验证框架校验]) .
- Struts2学习笔记(六)校验框架
- Struts2使用OGNL和校验框架
- DirectX(九)
- 进程管理--之二
- C/S和B/S网络架构的区别
- 解决 Visual Studio 卸载不完全的问题
- Java容器简介-欢迎大佬指正
- 框架学习之struts2-04数据类型转化和数据校验
- Linux学习小结(二)
- Socket.io在Swift中的应用
- 集合
- java中字符串相等问题
- 简易学生管理系统
- Python3 MySQL 数据库连接
- ccf认证图像旋转
- 密码安全性检查