原理
struts2的自定义类型转换机制为复杂类型的输入输出处理提供了便捷.struts2已经为我们提供了几乎所有的primitive类型以及常用类型(如Date)的类型转换器,我们也可以为我们自定义类添加自定义类型转化器.
struts2为我们提供了一个类型转化器的入口: ognl.DefaultTypeConverter,或继承org.apache.struts2.util.StrutsTypeConverter,由于StrutsTypeConverter提供了更好的封装,所以建议大家在写转换器时通常采用继承StrutsTypeConverter方式来实现.
StrutsTypeConverter类实质上是DefaultTypeConverter的扩展
| publicabstractclass StrutsTypeConverter extends DefaultTypeConverter { } |
StrutsTypeConverter中的两个核心方法
| publicabstract Object convertFromString(Map context, String[] values, Class toClass); publicabstract String convertToString(Map context, Object o); |
convertFromString方法用于从前台页面获取字符串,将字符串转化为对象
convertToString方法用于将对象以字符串的方式输出到页面
我们在写struts2自定义类型转换类的时候主要就是覆盖上面两个方法
分类
struts2自定义类型转换从大的方面来讲分两种:
u 局部类型转换
u 全局类型转换
局部类型转换又分为三种:
普通实体bean的自定义类型转换
基于领域模型的自定义