Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)

转载于:http://cmm.iteye.com/blog/491723

 

上午工作中出现了这样一个异常:

 

    ognl.OgnlException: target is null for setProperty(null, "x", [Ljava.lang.String;@1a48515)

    ognl.OgnlException: target is null for setProperty(null, "y", [Ljava.lang.String;@1d57c7)

 

     好像是我表单里面有多少个提交项后台就抛出多少对这样的异常信息。

     可是我的表单里面是没有X,Y这样的提交信息的。。。很是郁闷,而其在前期的开发中也出现过这样的异常,虽然后台抛出这样的异常,但是它不影响程序的正常运行,所以一直也就没管它。今天又苦苦寻觅了许久终于搞定了。。

 

原来,我提交表单的按钮是如下定义的:

<input type="image" name="Submit" value="提交" οnclick="return checkpwd();" src="images/a_tj.gif"/>

只要标签里面的type="image"那么这个带图片的按钮就能提交表单,而且还能在图片上加汉字。原来以为是个好的发现。呵呵,但是今天却发现问题就处在它身上。

当我把提交的按钮换成如下定义:

<input type="submit" name="bu1" οnclick="return checkpwd();"/>

好了,一切OK了。没有异常了。

上面的带图片的按钮是美工给的,因此在asp和php应该都没问题,主要是因为Struts2的问。

struts.xml文件里面有这么一个"struts.devMode"。当设为true时,html表单数据中有和action属性匹配不上的参数名时就会提示这样的信息。我试了一下,果然如此,因此在开发过程中将这个属性设为true还是不错的,可以帮我们发现一些可能出现的问题。 

这个错误信息主要因为struts.devMode = true引起,因为使用struts在默认配置下对任何提交到action的参数强制需要setter方法,而我们在使用token的时候一般都没有正确的为每一个token设置该参数,为此提交的token信息就会在这里一起一些错误信息,如果需要屏蔽掉这些的话,可以设置webwork.devMode = false来避免这种错误信息的抛出,当然这些错误在程序调试的时候是有用处了,我们可以根据这些信息来删除不必要的参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值