Struts2 s:token報NullPointerException

     項目中用到struts2的s:token標籤處理表單重複提交問題,在這對s:token的用法用配置做簡單介召。因爲我只針對某個特定action進行重複提交驗證,所以在這隻介召針對單個action進行重複提交驗證方法。

 

     1):在jsp頁表form中添加<s:token/>標籤,他會自動生成如如下代碼:

 

<input type="hidden" name="struts.token.name" value="struts.token"/>
<input type="hidden" name="struts.token" value="7GXL55LPSGU19SDC9D3VP54I20XT3BVA"/> 
 

 

     2):在需要證驗的action添加,token攔截器,和name=invalid.token的result

<action name="createOperator" class="operatorAction" method="createOperator">
     <interceptor-ref name="token" />
     <interceptor-ref name="myDefaultStack" />
     <result name="success_region" type="redirect">  
/pageerror.jsp
     </result>
     <result name="invalid.token">/pageerror.jsp</result>
     <result name="success" type="redirect-action">
         operatorEnter
     </result>
     <result name="error">/WEB-INF/jsp/operator/add.jsp</result>  
</action>  

 

    在提交表單時,struts2會對token值進行驗證,如果發現token的值不等於服務器保存的值,就認爲重複提交,struts2會自動跳轉到,name="invalid.token" result中,並把錯誤信息封裝到actionerror中。

 

    s:token使用中容易出現的錯誤

java.lang.NullPointerException
org.apache.struts2.util.TokenHelper.setToken(TokenHelper.java:71)
org.apache.struts2.components.Token.buildToken(Token.java:114)
org.apache.struts2.components.Token.evaluateExtraParams(Token.java:96)
org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856) 

    R:strut2的filter過濾器中配置了<dispatcher>FORWARD</dispatcher>,改爲

 

<% response.sendRedirect("");%>

    跳轉即可。轉自:http://ldzyz007.iteye.com/blog/654374

 

    推薦連接:http://lovemybook.iteye.com/blog/313566

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