精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-26
11.2 内建类型转换器Struts2内建的类型转换器能处理绝大多数的需求,只有极特殊情况才需要自定义类型转换器。在这一节中就一起来看看Struts2的内建类型转换器都可以完成哪些工作。 11.2.1简单类型Struts2已经内置了基本数据类型及其包装类和其他一些常见的用于表示数字/日期类型的类型转换器,包括:
11.2.2枚举类型枚举类型往往被人们忽略,其实Struts2的Action中也可以直接使用枚举类型,其对应的参数值只需要对应枚举定义时的定义名即可。 比如有如下的枚举定义,示例代码如下:
java代码:
在Action引用的时候,只需传入枚举的定义名(red,blue或green)即可,示例代码如下:
java代码:
其在struts.xml中的定义为:
java代码:
为了简单,就不去写页面了,直接通过URL来访问,使用get传参的方式,访问的URL为:“http://localhost:9080/helloworld/converterAction.action?color=red”,运行后,后台输出的结果为:
java代码:
可以看到,使用red作为参数将得到枚举中red的那个枚举值。 11.2.3复合类型这里提到的复合类型与上一节的简单类型相比,并不是Action的属性的类型变得复杂了,而是操作属性的OGNL变得复杂了,其最终操作的无非还是上面的那些简单类型。 其实,这些东西在第四章的时候都已经提到过了,只不过是在这里再次归纳总结,让大家看到类型转换器的全貌。 1:JavaBean 在Action中定义一个JavaBean属性,那么访问JavaBean中的某一个属性,需要使用Action中JavaBean的属性名.JavaBean中的属性名。 比如有长方形这个JavaBean:
java代码:
在Action定义一个长方形类型的属性,并提供相应的getter/setter方法,示例代码如下:
java代码:
需要在提交页面上用<s:textfield name=” rectangle.width”/>来引用Action的rectangle属性的width属性。就相当于调用这个Action的get Rectangle().setWidth()方法。 2:数组和List—简单属性 使用数组和List及其相似,在提交页面上并无区别,在Action中也仅是声明的区别。比如在Action中需要得到提交页面提交的两组身高和体重的数据:
java代码:
对应的提交页面上需要添加:
java代码:
对应的提交页面上在<s:textfield>的name属性上写不写对应的索引都可以。Action都会正确的获取到用户的输入。 3:数组和List—JavaBean 如果数组或List里面放的是JavaBean,大家不可以掉以轻心,在提交页面上的写法就不那么随便了。 仍然使用上面长方形的JavaBean(里面有width和height两个属性)来做说明,在Action中需要接收一个长方形类型的数组,示例代码如下:
java代码:
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1181 次