转制换器类型 | 功能 |
String | 将int、long、double、boolean、String类型的数组或java.util.Date类型转换成字符串 |
boolean/Boolean | 在字符串与布尔值之间进行转换 |
char/Character | 在字符串与字符之间进行转换 |
int/Integer、float/Float、 long/Long、double/Double | 在字符串与数值类型数据之间进行转换 |
Date | 在字符串与日期类型间进行转换.具体输入/输出格式与Local相关 |
数组和集合 | 在字符串与数组对象、集合对象之间进行转换 |
上面这种方式中所需的数据,要做用户必填处理,否则会出错(数组的特性),选填数据用下面的方式<s:form action="ArrayTest.action">
<s:textfield name="numbers[0]" label="数字" />
<s:textfield name="numbers[1]" label="数字" />
<s:textfield name="numbers[2]" label="数字" />
<s:submit></s:submit>
</s:form>
<s:form action="ArrayTest.action">
<s:checkbox name="hobbys" label="玩游戏" value="game" />
<s:checkbox name="hobbys" label="看电影" value="film" />
<s:checkbox name="hobbys" label="看书" value="book" />
<s:submit></s:submit>
</s:form>
2.集合
上面的方式就能接收到一个用三个用户的集合,此时只有name有值,如果还需要实体的其它属性就得用下面的方式<!-- 对应Action中有 List<User> user 集合; 此处只取单个属性,如果取多个属性,则每个属性分别在对象中,对象的其它属性是null,得不到实际想要的 -->
<s:form action="ArrayTest.action">
<s:textfield name="user.name" label="姓名" />
<s:textfield name="user.name" label="姓名" />
<s:textfield name="user.name" label="姓名" />
<s:submit></s:submit>
</s:form>
<!-- 取三个对象的集合,每个对象有 name,age属性 -->
<s:form action="ArrayTest.action">
<s:textfield name="user[0].name" label="姓名"/>
<s:textfield name="user[0].age" label="年龄" />
<s:textfield name="user[1].name" label="姓名" />
<s:textfield name="user[1].age" label="年龄" />
<s:textfield name="user[2].name" label="姓名" />
<s:textfield name="user[2].age" label="年龄" />
<s:submit></s:submit>
</s:form>
<s:iterator value="hobbies" >
<s:property />
</s:iterator>
userList[1].name array[2]
userMap['userA'].name
userList.size userArray.length userMap.size
- public Object convertFromString(Map context, String[] values, Class toType):将一个或多个字符串转换成指定类型.将指定类型转换成字符串, context 是OGNL上下文对象,values是要转换的对象字符串,toType是要转换的目标类型
- public String convertToString(Map context, Object obj): 将指定类型转换成字符串, context 是OGNL上下文对象,obj是要转换的对象