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()方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值