1. Struts2 类型转换使用介绍
Struts2的类型转换几乎支持Java中各种数据类型的转换。甚至开发者还可以自定义自己的类型转换功能,但是,我们并不推荐开发人员自定义的类型转换功能。原因有二:一是遵循IT界著名名言“不重复发明轮子”,不在前人的成果上再次浪费时间。而是类型转换本身在开发的过程中就不适合占用大量的时间和人力,增加成本。
1.1 基本数据类型转换功能
在struts2的内部,有着一系列非常完整的类型转换功能,所以在基本类型转换的功能上,我们并不需要花费太多的时间去进行深究,直接在应有的方向上进行使用。
1.2 List集合类型数据类型转换功能
在这里有一个比较重要的内容,当我们在Action类中定义我们所需要的List类型变量的时候,要注意List集合中的元素是何种对象?这里有两种方法。一是在Action类中定义的时候使用泛型,就可以明确该集合是什么对象的。二是在Action所在包的下面建一个属性文件:这里要注意该属性文件是一个局部类型转换属性定义文件。文件名要以ActionName开头,然后以--conversion.properties结尾。这表示是对该Action中List集合类型指定元素类型。
1.3 Set集合类型数据类型转换功能
Set集合类型变量有一个显性的要求,就是变量必须显示定义它的类型。否则Struts2不知道该变量是哪一种Set集合,这样系统就找不到在属性文件中定义的所以和元素对象类型。
在属性文件中除了继续定义元素对象类型之外,还需要定义该机和类型变量的索引。其中定义索引的通用格式为 " KeyProperty_SetName = 属性 "。
在数据输入的JSP页面中,笔者使用OGNL中的 “ makeNew ”API 。先建立对象,然后依次输入对象的各个属性数据。
其他和List集合并没有什么太大的区别。
2. 类型转换发生异常的处理方案
类型转换其实就是调用某些Struts2已经定义的Java代码。不过只要有Java这门语言书写的程序都不可避免异常处理。
2.1 Struts2自带异常提示
如果不使用任何其他代码直接输入错误,也就是类型转换失败的话,就会直接弹出一些属于struts2 自己的异常提示
当然,我们也可以使用<s:filederror />
这么一个标签,就能比较好的展示出类型转换异常。
2.2 Struts2 局部异常提示定义属性文件使用介绍
例如:
invalid.fieldvalue.fieldName=xxxx
这样就是一个局部的异常提示。前面是固定的,然后后面呢,就是在Jsp页面中定义的field的name。
2.3 Struts2 全局异常提示定义属性文件使用介绍
例如:
xwork.default.invalid.fieldvalue={0}类型转换错误
注意:* 属性文件中的“{ 0 }”其实就是占位符,如果有多个属性的类型转换有异常发生,可依次以"{0}","{1}"定义多个属性。然后这些属性名会自动一一对应于属性文件中的定义。 *