今天如常的打開項目開放。寫了一會保存測試。在登錄時出了個錯誤當不影響正常使用。丫的昨天還好好的。行下手上的工作 開始找bug
錯誤核心代碼如下:
10:34:46,442 WARN OgnlValueStack:60 - Error setting exjava.lang.String;@5e7b8281'ognl.OgnlException: target is null for setProperty(null, "x", [Ljava.lang.String;@5e7b8281)
10:34:46,445 WARN OgnlValueStack:60 - Error setting expression 'login.y' with value '[Ljava.lang.String;@221aa7c1'ognl.OgnlException: target is null for setProperty(null, "y", [Ljava.lang.String;@221aa7c1)
報類型轉換錯誤 可我的Action中壓根就沒有 什么x,y 參數。
后在一個網址上看到有前輩也遇到相同的問題。解決方法是:(看看是否有圖片 以及 這個圖片是否有name屬性 如果有就果斷刪掉把。
下面是轉載前輩所述:
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://fanli7.net/a/JAVAbiancheng/Struts/20140329/485364.html
新聞熱點
疑難解答