Struts2遇到的问题

今天在用struts2写一个功能的时候,出现一个莫名其妙的异常,虽然对程序的运行上好像没有什么影响,但是总会影响程序的健壮性。

异常信息:

No object in the CompoundRoot has a publicly accessible property named 'id' (no setter could be found). - (unknown location)

这里写图片描述
这里写图片描述

根据提示知道,缺少了setter()方法。细心一查才发现,原来我在前台html页面设置了一些 <input type="hidden"> 的隐藏域,而在后台Action里面取这些值得时候,使用的是requset.getParameter("id")的方式取值的,这不得不说这种编程方法超级low,完全和Servlet API耦合得太严重了。确实不该......

OK,既然知道了原因,那总有解决之道

对于欲传到Action里的值,我这里采用了属性驱动的方式,为每一个值设置了getter()和setter()方法,然后在Action通过getter()获取该值即可。

后来在网上搜了这个异常的一些相关回答,一一试了试,发现出现这个问题其实有那么几个原因

1、 在struts.xml里配置成了开发者模式,启动运行时就会出现这种问题。

<constant name="struts.devMode" value="true" />

解决方法:
(1)、将开发者模式禁用即可。

<constant name="struts.devMode" value="false" />

(2)、为参数设置getter()和setter()方法。

猜你喜欢

转载自blog.csdn.net/security_2015/article/details/72901989