Structs2 框架笔记(三)类型转换器、数据验证及拦截器

类型转换器

1. 自动类型转换
Struts2内置了一些类型转换器,可以由String类型转换为相应类型

  • int/Integer
  • long/Long
  • float/Float
  • double/Double
  • char/Character
  • boolean/Boolean
  • Date:可以接受yyyy-MM-dd HH:mm:ss格式字符串
  • 数组
  • Map/List

2.自定义类型转换器
①定义
自定义一个类,继承DefaultTypeConverter,并重写public Object convertValue(Object value, Class toType) 方法
value:待转换的字符串
toType:要转成的目标类型
②注册

  • 局部类型
    在Action类所在包下放置如下格式属性文件:ActionClassName-conversion.properties
    属性文件内容:
    属性名称=类型转换器的全类名
  • 全局类型
    在src目录下放置属性文件,名称为xwork-conversion.properties
    属性文件内容:
    待转换的类型=类型转换器全类名

数据验证

对Action中的所有方法进行验证
①定义
首先,Action要继承ActionSupport类,重写validate方法,Action中所有Action方法在执行之前,validate方法均会被调用,以实现对数据的验证。
②结果
当数据验证失败时,struts会调用addFieldError()向系统的fieldErrors集合中添加失败信息,如果fieldErrors中包含失败信息,struts2会将请求转发到名为
input的Result中,在input视图中可以使用< s:fielderror/ >获取出错信息。


拦截器

拦截器可以在执行Action方法之前后之后拦截下用户的请求,执行一些操作,即在Action方法执行之前或之后执行,以增强Action方法的功能。

1.自定义拦截器
普通的拦截器需要实现拦截器接口Interceptor,该接口有三个方法:

  • public void init();//拦截器实例被创建之前被调用
  • public void destroy();//拦截器实例被销毁之前被调用
  • public String interceptor(ActionInvocation invocation) throws Exception;//主要的拦截方法,在Action执行之前被调用,拦截器的附加功能在该方法中实现,
    参如果需要调用后续的Action或者拦截器,只需要在该方法中调用invocation.invoke()方法即可,在该方法调用的前后可以插入Action调用前后拦截器需要做的方法。如果不需要调用后续的方法,则返回一个String类型的对象即可。

2.注册拦截器
在struts.xml中注册,如:

<interceptor-ref name="checkbox">
  <param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/><!--最后一定要引用struts2自带的拦截器缺省堆栈defaultStack-->

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值