日期:2014-05-17  浏览次数:20929 次

strut2属性问题请教?
  我有一个action中有整型intid属性,id的值是通过get方式赋值:test.do?id=XXX,显然当XXX输入“abc"等字符串时,会报错!!
   我想让XXX输入”abc“等字符串时不报错,而直接将action中的id默认为-1,请问怎样实现?
------最佳解决方案--------------------
我觉得可以这样处理
在Action类中实现ServletRequestAware接口,在Action中就可以用request对象了,在相应的方法内
(Integer)request.get("id");
如果有值,就id=-1.
------其他解决方案--------------------
可以通过js实现
------其他解决方案--------------------
js实现太麻烦了,后台不能处理这样的情况吗?
------其他解决方案--------------------
引用:
js实现太麻烦了,后台不能处理这样的情况吗?

报错的根源在哪里?
------其他解决方案--------------------
那你把id定义成String类型的吧
因为struts2是通过反射赋值给参数的。你的类型是int可是你输入了abc当然不行

------其他解决方案--------------------
action中的属性是自动绑定的,你只能在action中设为String类型,然后根据是否是数字进行转换。


------其他解决方案--------------------
写一个struts2类型转换器。
------其他解决方案--------------------
谢谢回复!用类型转换器没作用,还没进入类型转换器就抛exception了!
只能将属性声明为String类型吗?
------其他解决方案--------------------
亲们  楼主的写的好像是struts1的程序