看了网上大部分有关类型转换的例子,无非不过是关于point这个javaBean展开的。
页面输入部分:
<s:form action="pointconverter"> <s:textfield name="point1" label="point1"></s:textfield> <s:textfield name="point2" label="point2"></s:textfield> <s:textfield name="point3" label="point3"></s:textfield> <s:submit name="submit"> </s:submit> </s:form>
然后有个javabean:
public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; }
最后一个自定义的类型转换:
Point point = new Point(); String[] values= arg1[0].split(","); int x = Integer.parseInt( values[0].trim() ); int y = Integer.parseInt( values[1].trim() ); point.setX(x); point.setY(y); return point;
将页面由一个文本框的内容拆分为一个point对象组合起来。
的确很明显这是一种解决方法,但是给我感觉无非的脱裤子放屁多此一举
因为Struts2已经提供了解决页面传来的javabean的方法,无需你自己实现一套类型转换来帮忙转换,除非遇到复杂的数据类型需要自己写类型转换,否则无需类型转换。
所以上述的输入页面可以直接改为这样:
<s:form action="pointconverter"> <s:textfield name="point1.x" label="point1"/>,<s:textfield name="point1.y" label="point1"/> <s:textfield name="point2.x" label="point2"/>,<s:textfield name="point2.y" label="point1"/> <s:textfield name="point3.x" label="point3"/>,<s:textfield name="point3.y" label="point3"/> <s:submit name="submit"> </s:submit> </s:form>
完全省略了自定义类型转换,action无需做其他任何操作自动分装point对象,然后将结果传到输出页面。