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

struts出错后就必须重启tomcat,否则程序无法继续运行
struts的自动从form中取得数据填充到action的属性时,类型转换出错,然后就必须重启tomcat,否则该action就再也无法使用,即使填写了正确的数据再提交也是同样的http status 500的错误,说no result for input

------解决方案--------------------
不要继承自 ActionSupport,它是做了验证的(ValidationAware )。 实现 Action 接口
------解决方案--------------------
探讨
1。我没有使用验证功能
2.用的是struts自己的数据转换
3.确实是tomcat受影响了

大家可以做个简单的试验
都用最简单的代码,直接struts2取form提交的内容
一个是数据转换的,比如你在action定义一个int的属性,但是你从form提交了一个string类型的,比如ABC,
提交后页面就会报错,就算你把ABC改成123再提交也是不行了,除非重启tomcat,但是……

------解决方案--------------------
探讨

1。我没有使用验证功能
2.用的是struts自己的数据转换
3.确实是tomcat受影响了

大家可以做个简单的试验
都用最简单的代码,直接struts2取form提交的内容
一个是数据转换的,比如你在action定义一个int的属性,但是你从form提交了一个string类型的,比如ABC,
提交后页面就会报错,就算你把ABC改成123再提交也是不行了,除非重启tomcat,但……

------解决方案--------------------
以前玩struts2的时候只要不用到校验和国际化一般我都不会去继承actionSupport的,所以这个问题昨天临时研究了下.!
继承actionSupport会校验数据,如果转换出错,会找你要input视图,没配就出错.! 如果你没有继承actionsupport的话, 页面该显示还是显示,只是后台会报找不到相应的set方法去填充请求参数值.!
这个事情客户端写一套正则表达式校验了得了算.!
------解决方案--------------------
lz意思是不是出错后,你点击浏览器的返回重新输入,输入正确类型以后还是报错?
------解决方案--------------------
探讨

1。我没有使用验证功能
2.用的是struts自己的数据转换
3.确实是tomcat受影响了

大家可以做个简单的试验
都用最简单的代码,直接struts2取form提交的内容
一个是数据转换的,比如你在action定义一个int的属性,但是你从form提交了一个string类型的,比如ABC,
提交后页面就会报错,就算你把ABC改成123再提交也是不行了,除非重启tomcat,但……