Struts2中的类型转换器
2016-10-28 00:00
363 查看
在servlet中如果我们前台提交的String类型的数据与我们后台所需要的数据不一致时,这时我们需要进行手动的进行转换,例如:
而在struts12中比较常见的类型转换struts2通过拦截器已经帮我们完成了,不需要我们进行手动的进行转换,而一些自定义的类型,还是需要我们自己进行手动转换,而这种转换,我们不应该放在action中,因为当我们需要转换的同一类型的数据较多时,这样将会增加很多的代码量,而正确的实现方式是写一个转换类,这个类继承抽象类StrutsTypeConverter,实现里面没有实现的方法。然后编写一个xwork-conversion.properties的配置文件,文件内容是:需要转换的类型=继承了StrutsTypeConverter的转换类。这样也就完成了类型的转换,例如:
注意:运用ognl表达式在前台进行取数据是通过值栈来获取数据,即需要通过convertToString()这个方法进行获取数据,而使用EL表达式的取值方式是:page->response->session->application.这样的遍历方式进行取值,所以不需要通过convertToString()该方法,如果取的是一个对象的话则是直接去调用的toString方法。
String strAge = req.getParameter("age"); if(strAge != null){ age = Integer.parseInt(strAge); } |
public class PointConverter extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { // TODO Auto-generated method stub String value = values[0]; System.out.println(value); Point point = new Point(); String x = value.substring(1,value.indexOf(",")); String y = value.substring(value.indexOf(",")+1,value.indexOf(")")); point.setX(Integer.parseInt(x)); point.setY(Integer.parseInt(y)); return point; } erride public String convertToString(Map context, Object o) { // TODO Auto-generated method stub Point point = (Point)o; return "("+point.getX()+","+point.getY()+")"; } } |
相关文章推荐
- struts2类型转换
- Struts2入门-类型转换补充
- Struts2之类型转换
- struts2学习笔记(3)——struts2的局部类型转换
- struts2 类型转换
- Struts2学习:类型转换篇
- Struts2类型转换
- Struts2类型转换 笔记
- Struts2.1笔记(六):Struts2的 类型转换(续)
- [转载]struts2 值栈与类型转换
- 总结2:Struts2类型转换
- struts2的一些用法(二):类型转换
- Struts2中的类型转换
- struts2类型转换续
- Struts2学习笔记5:Struts2类型转换续二
- struts2的类型转换
- struts2入门学习--类型转换
- Struts2的类型转换
- 基于Struts2的全局类型转换器
- 解决struts2基础数据类型自动转换,输入字母报错问题!