首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图

struts2 升级有关问题 2

2014-04-25 来源:读书人网 【读书人网(Reader8.cn):综合教育门户网站】
struts2升级问题 2转载分类:?Java专区WARN?com.opensymphony.xwork2.ognl.OgnlValueStack:60?-?Error?sett

struts2 升级问题 2
转载分类:?Java专区

WARN?com.opensymphony.xwork2.ognl.OgnlValueStack:60?-?Error?setting?expression?'ssc.x'?with?value?'[Ljava.lang.String;@28d320d6'

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

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

的解决办法

Struts2这个异常是在提交表单的时候发生的,乍一看以为是Struts2类型转换的错误,但是程序中又压根儿没有用到Struts2的类型转换,而且前台页面index.jsp中也没有设置x,y这些参数;且这个错误并不会影响程序的正常运行,找了很久,最后发现是提交按钮的缘故,提交按钮引用的是一个图片,如下:

<input?id="submit"?type="image"?name="ssc"?src="asserts/images/5.jpg"/>

由于表单提交中设置了name属性,所以struts2会进行接收相应的值,查找它的set?和?get方法,而action里面没有这个name值的,所以才出现了如上错误。可以这样写:

<input?id="submit"?type="image"??src="asserts/images/5.jpg"?/>

将name属性去掉即可。

其实,在struts.xml文件里可以配置"struts.devMode"属性。

当struts.devMode?=?true时,使用struts在默认配置下对任何提交到action的参数强制需要setter方法,html表单数据中有和action属性匹配不上的参数名时就会提示这样的信息。所以,在开发过程中将这个属性设为true还是很好的,它可以帮我们发现一些可能出现但又被我们忽视的问题,犯的“错误”越多,才能积累很多的经验。