struts2的Action發生的Error setting expression 'x' with value [] 的錯誤

    最近寫ssh項目時開始沒注意,後來發現每次提交表單後控制檯都會打印這個錯誤信息:

23:53:18.619 ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor 231 notifyDeveloperParameterException - Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'x' on 'class cn.cdut.oa.view.action.RoleAction: Error setting expression 'x' with value ['16', ]
23:53:18.621 ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor 231 notifyDeveloperParameterException - Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'y' on 'class cn.cdut.oa.view.action.RoleAction: Error setting expression 'y' with value ['2', ]

    但是它並不影響程序的運行,但是看着心裏不爽,不知道哪裏出現了問題!

    後來經過一番的搜索,很多網上說的是Action不能設置表單中相應參數值給Action類中的屬性,可能是出現了Action中沒有相應屬性的getter和setter方法、或是表單中的name屬性的值和Action的屬性名不一致。

    例:當你的form中比如有個輸入框<input type="text" name="loginName"/>,當提交到Action時不能正確的將此loginName參數的值賦給Action中的loginName屬性。此時就有可能是以上錯誤。

    但我在我的表單頁面中找發現我並沒有傳name爲 'x' 或 'y' 的參數,所以我的錯誤並不在此。後來終於找到一位大神發生同樣的問題。

    

    原因是當表單中含有這樣的input輸入框(提交按鈕):

<input type="image"  src="${pageContext.request.contextPath}/style/images/save.png"/>

    或者這樣的:

<input type="image" name="save"  src="${pageContext.request.contextPath}/style/images/save.png"/>

    這種type爲image的輸入框會傳鼠標點擊圖片的x座標和y座標的參數給請求地址(第二個有name屬性的傳遞的參數則是save.x和save.y),我的Action中沒有接受該參數的屬性,所以報錯。我用這種類型的輸入框是爲了方便顯示提交按鈕圖片。

    解決辦法:(我覺得其實這個錯誤對程序的影響不大)

        第一種方法是換掉這種類型的提交按鈕;

        第二種方法是把struts2的開發模式關閉,因爲只有在開發模式下才會提示你這個錯誤。

<constant name="struts.devMode" value="false"/>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章