总结2:Struts2类型转换
2008-08-21 21:53
429 查看
在html表单中的文本框里输入的不管是数值类型还是字符类型,最后都是以String类传到后台。如果后台bean的属性是int、double、Date等,Struts2就会自动把字符类型转换成相应的类型。
一.局部类型转换
[/b]1.名称格式:action类名+-conversion.properties
2.位置:放在与之相对应action类的同包下
3.properties文件内容格式:转换属性=转换处理类
4.转换处理类:继承StrutsTypeConverter实现convertFromString方法和convertToString方法
5.具体处理流程:
(1)输入:HTML表单提交—Action类处理—执行属性setter方法—如果需要类型转换—找到properties文件—按照properties设置找到对应的转换类,调用其中convertFromString转换方法-把返回值通过setter方法给action中属性赋值。
(2)输出:Action类处理—执行属性getter方法—如果需要类型转换—找到properties文件—按照properties设置找到对应的转换类,调用其中convertToString转换方法-把返回值通过getter方法输出到页面。
二.全局类型转换(页面中所有用到改bean的都会被类型转换)[/b]
1.名称格式:xwork-conversion.properties
2.位置:src根目录下
3.properties文件内容格式:bean类=转换处理类
三.主要代码
[/b]
1、xwork-conversion.properties(全局)
com.test.bean.Point=com.test.converter.PointConverter
2.PointAction-conversion.properties(局部)
point=com.test.converter.PointConverter
3.转换类
package com.test.converter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.test.bean.Point;
public class PointConverter3 extends StrutsTypeConverter
{
@Override
public Object convertFromString(Map context, String[] values, Class toClass)
{
List<Point> list = new ArrayList<Point>();
for(String value : values)
{
Point point = new Point();
String[] paramValues = value.split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
list.add(point);
}
return list;
}
@Override
public String convertToString(Map context, Object o)
{
List<Point> list = (List<Point>)o;
StringBuilder sb = new StringBuilder();
sb.append("[ ");
int number = 0 ;
for(Point point : list)
{
++number;
int x = point.getX();
int y = point.getY();
sb.append(number).append(" x = ").append(x).append(" , y = ").append(y).append(" ");
}
sb.append("]");
return sb.toString();
}
}
一.局部类型转换
[/b]1.名称格式:action类名+-conversion.properties
2.位置:放在与之相对应action类的同包下
3.properties文件内容格式:转换属性=转换处理类
4.转换处理类:继承StrutsTypeConverter实现convertFromString方法和convertToString方法
5.具体处理流程:
(1)输入:HTML表单提交—Action类处理—执行属性setter方法—如果需要类型转换—找到properties文件—按照properties设置找到对应的转换类,调用其中convertFromString转换方法-把返回值通过setter方法给action中属性赋值。
(2)输出:Action类处理—执行属性getter方法—如果需要类型转换—找到properties文件—按照properties设置找到对应的转换类,调用其中convertToString转换方法-把返回值通过getter方法输出到页面。
二.全局类型转换(页面中所有用到改bean的都会被类型转换)[/b]
1.名称格式:xwork-conversion.properties
2.位置:src根目录下
3.properties文件内容格式:bean类=转换处理类
三.主要代码
[/b]
1、xwork-conversion.properties(全局)
com.test.bean.Point=com.test.converter.PointConverter
2.PointAction-conversion.properties(局部)
point=com.test.converter.PointConverter
3.转换类
package com.test.converter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.test.bean.Point;
public class PointConverter3 extends StrutsTypeConverter
{
@Override
public Object convertFromString(Map context, String[] values, Class toClass)
{
List<Point> list = new ArrayList<Point>();
for(String value : values)
{
Point point = new Point();
String[] paramValues = value.split(",");
int x = Integer.parseInt(paramValues[0]);
int y = Integer.parseInt(paramValues[1]);
point.setX(x);
point.setY(y);
list.add(point);
}
return list;
}
@Override
public String convertToString(Map context, Object o)
{
List<Point> list = (List<Point>)o;
StringBuilder sb = new StringBuilder();
sb.append("[ ");
int number = 0 ;
for(Point point : list)
{
++number;
int x = point.getX();
int y = point.getY();
sb.append(number).append(" x = ").append(x).append(" , y = ").append(y).append(" ");
}
sb.append("]");
return sb.toString();
}
}
相关文章推荐
- Struts2 Chater 4&5 Struts2中的验证输入和数据类型的转换
- struts2的类型转换实例
- 一篇文章搞定Struts2的类型转换
- Struts2的类型转换(1):基于ognl的类型转换
- struts2类型转换
- struts2为什么要类型转换
- Struts2的类型转换
- Struts2的类型自动转换机制
- struts2中类型转换
- Struts2的类型转换
- Struts2对于BigDecimal类型的转换问题
- struts2的类型转换
- Struts2学习7---集合类型的类型转换
- Struts2自定义类型转换
- 【Struts2】1.类型转换和输入校验
- struts2学习之---类型转换
- Struts2中转换Date类型的问题 推荐
- Struts2 系列之(3)类型转换
- Struts2:类型转换之批量封装Set集合类型的属性(二)
- struts2之类型转换