很多時候要防止重復提交,比如論壇在發表提問的時候,要是不控制那就可以一直提交~
使用方法:論壇為例
ask.do :為跳到提問頁面的action
ask.jsp:為提問頁面
askok.do:為提問成功提交的action
askok.jsp:處理提問之後的跳轉的jsp
首先在ask這個action裡面加入saveToken(request);這是為了在提問頁面即ask.jsp頁面生成一個隱藏 的表單
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="a6b9ff6834284444001b8206723b654d">
在ask。jsp頁面做以下處理:使用form為<html:form method="post" action="askok.do"> 因此要引入這個標簽 否則不會生成這個隱藏表單。
form寫法 1.1之後不寫name 沒有這個屬性 但要在struts-config。xml裡面配置這個actionform 我們 可以定義為question 同時要配置askok這個action裡面要寫入對應的form
<action path="/askok" type="....." name="question">必須寫上這個否則會報找不到FORM的 錯誤
如果要在ask。jsp這個頁面做js處理要用到FORM name的話可以直接寫 question 因為struts自動 生成了這個form的name 生成之後的:<form name="bangquestion" method="post" action="/askok.do">
ask.jsp 這個頁面自動生成加入FORM name
然後在askok.do裡面寫if (isTokenValid(ac.getRequest(),true)) {
添加提問 }else { 跳轉提示 }