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還是很好的,它可以幫我們發現一些可能出現但
又被我們忽視的問題,犯的“錯誤”越多,才能積累很多的經驗。
轉自百度空間:
http://hi.baidu.com/gpsdreamer/item/544050ed0e00e4d0e1a5d4cd