ognl.OgnlException: target is null for setProperty

.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这些参数,这个错误并不会影响程序的运行,但是既然报错了总得有原因吧,网上查说没有设置set方法了,没有构造方法了....看的头晕,最后发现时提交按钮的事,我提交按钮时一个图片,提交按钮引用的是一个图片 

<input type="image" name="logon" src="/images/global/regloginbutton2.jpg" alt="" border="0" /> 

如果我把这个提交的按钮换成普通的提交<input type="submit" value="提交"/>就可以了,感觉是图片的问题,但是我前面也用过图片提交,没有发生过错误,最后发现罪魁祸首是name属性,因为设置了name属性,便要在struts中进行接收相应的值,而action里面是没有这个name值的,但是为什么报x,y而不报name值为空. 

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

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

可以这样写:<input type="image" src="images/dl.gif" width="49" height="18" border="0"  onclick= "javascript:document.form.submit()";> 
将name属性去掉。 

你可能感兴趣的:(ognl.OgnlException: target is null for setProperty)