struts2的类型转换

来源:互联网 发布:校园网络管理与维护 编辑:程序博客网 时间:2024/04/27 12:30

    struts2的类型转换器实际上是基于OGNL实现的,在OGNL的项目中有一个TypeConverter接口,这个接口就是实现类型转换器必须实现的接口。

    //OGNL提供的类型转换器接口

一般应用的话可以继承DefaultTypeConverter,重写一下它的convertValue方法就好了,它只有三个参数,toType用于判断出现在这个转换器用于转换出什么类型的对象,在web应用中,一般就是String到对象,对象到String的转换,所以,我们需要先进行判断出转换的方向,在进行转换。我们也可以继承StrutsTypeConverter,它的两个方法,convertToString和convertFromString,顾名思义,就是这两个方向的装换,参数和都是一样的,需要注意的是,如果是从字符串装换成对象,这个参数是一个字符串数组而不是一个字符串,因为在表单中有可能具有相同name的表单域,所以这里的value是字符串数组。

 

配置方法可以总结为下面几种:

局部转换器配置:ActionName-conversion.properties

fileName = Converter

eg:user = yy.UserConverter

全局转换器配置:xwork-conversion.properties

yy.User = yy.UserConverter

 

 

对于集合的转换器配置我只学过局部的配置,如果哪位大侠知道全局的配置,请发出来学习学习。

List : Element_listName = List中复合类型,页面中使用方法:<s:property value="user[0].name" />

Map: Key_mapName = Key的类型,Element_mapName=Value的类型,页面中使用方法:<s:property value="user['key'].name" />

Set : KeyProperty_setName = 用于索引元素的属性,Element_setName=元素的类型,页面中使用方法:<s:property value="user('keyProperty').name" />

 

 

struts 先进行类型转换,后执行表单验证。如果类型转换出错,将不进行表单验证。

conversionError会封装在fieldError中