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
這個(gè)異常是在提交表單的時(shí)候發(fā)生的,乍一看以為是Struts2類型轉(zhuǎn)換的錯(cuò)誤,但是程序中又壓根兒沒有用到Struts2的類型轉(zhuǎn)換,而且前臺頁面
index.jsp中也沒有設(shè)置x,y這些參數(shù);且這個(gè)錯(cuò)誤并不會(huì)影響程序的正常運(yùn)行,找了很久,最后發(fā)現(xiàn)是提交按鈕的緣故,提交按鈕引用的是一個(gè)圖片,
如下:
<input id="submit" type="image" name="ssc" src="asserts/images/5.jpg"/>
由于表單提交中設(shè)置了name屬性,所以struts2會(huì)進(jìn)行接收相應(yīng)的值,查找它的set 和 get方法,而action里面沒有這個(gè)name值的,所以才出現(xiàn)了如上錯(cuò)誤。可以這樣寫:
<input id="submit" type="image" src="asserts/images/5.jpg" />
將name屬性去掉即可。
其實(shí),在struts.xml文件里可以配置"struts.devMode"屬性。
當(dāng)
struts.devMode = true時(shí),使用struts在默認(rèn)配置下對任何提交到action的參數(shù)強(qiáng)制需要setter方法,html表單數(shù)
據(jù)中有和action屬性匹配不上的參數(shù)名時(shí)就會(huì)提示這樣的信息。所以,在開發(fā)過程中將這個(gè)屬性設(shè)為true還是很好的,它可以幫我們發(fā)現(xiàn)一些可能出現(xiàn)但
又被我們忽視的問題,犯的“錯(cuò)誤”越多,才能積累很多的經(jīng)驗(yàn)。
轉(zhuǎn)自百度空間:
http://hi.baidu.com/gpsdreamer/item/544050ed0e00e4d0e1a5d4cd