在使用servlet开发中,表单中提交的数据到servlet后都是字符串类型,需要程序员手动进行类型转换。

但是到struts2后,基本数据类型struts2都可以转换。但是如果是自定义类型,struts2也不能自动转换。

这个时候需要程序员进行手动转换或者使用struts2提供的类型转换机制来实现。

案例:假如在页面上提交一个坐标点,如何在处理类中获取的也是坐标对象信息。

使用struts2的类型转换机制步骤:

1.编写类型转换器,该类型转换器继承StrutsTypeConverter ,由ognl调用

/**
* 自定义类型转换器
* @author siggy
*
*/
public class PointConverter extends StrutsTypeConverter{
/**
* 从字符串转换为指定的类型
* context 是ActionContext
* values 是表单提交数据
* toClass 要转换的类型
*/
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
System.out.println("执行类型转换器");
String value=values[0];//value=(2,3)
Point point = new Point();
point.setX(Integer.parseInt(value.substring(1, value.indexOf(","))));
point.setY(Integer.parseInt(value.substring(value.indexOf(",")+1,value.length()-1)));
return point;
}
/**
* 从指定类型转换为字符串
*/
@Override
public String convertToString(Map context, Object obj) {
Point point = (Point)obj;
return "("+point.getX()+","+point.getY()+")";
} }

2.编写类型转换器的配置文件

全局的配置文件放于src下 名称为 xwork-conversion.properties

#toClass=class converter
cn.sxt.vo.Point=cn.sxt.converter.PointConverter

最新文章

  1. js 字符串操作函数
  2. MongoDB聚合运算之mapReduce函数的使用(11)
  3. lua table序列化和反序列化
  4. ConvertFrom-String 命令研究
  5. js&jquery验证邮箱和手机号是否正确范例
  6. OpenGL超级宝典第5版&&glProvokingVertex
  7. Java中static作用及用法详解(转)
  8. Win手机安卓程序初体验
  9. static在C和C++中的用法和区别
  10. Android开发之查看应用包名package和入口activity名称的方法
  11. 【NOIP2014】DAY2题解+代码
  12. .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
  13. codevs 1006 等差数列
  14. pig代码格式上小注意
  15. uc浏览器视频缓存合并工具
  16. visual studio 插件
  17. python shlex 模块
  18. 【Android开发】之MediaPlayer的错误分析
  19. STM32 DMA简述
  20. 算法笔记_156:算法提高 6-17复数四则运算(Java)

热门文章

  1. tomcat9源码导入idea
  2. 第07组 Beta冲刺(4/5)
  3. 搭建EOS全节点并接入主网
  4. 执行buildman --fetch-arch arm提示"urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>"如何处理?
  5. Android adb临时关闭Selinux
  6. 2-4 【接口Interface Flex布局】让顶部导航滚动
  7. Linux 服务器CPU占用率100%,使用率高解决方案
  8. UIView的intrinsicContentSize方法,在按钮中重写
  9. [LeetCode] 504. Base 7 基数七
  10. dubbo问题集合