本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          首先必須要通過一個Action再轉向那個添加記錄的頁面,轉向函數如下.

          ?public ActionForward tokenTest(
          ???ActionMapping mapping,
          ???ActionForm form,
          ???HttpServletRequest request,
          ???HttpServletResponse response) throws Exception {
          ??saveToken(request);//把一個token ID保存到Session,并在且要轉到的頁面
          ?????? //的<html:form>中添加一個<input type="hideen">的標答.
          ??return mapping.findForward("add");
          ?}


          一個輸出入頁面如容如下:

          <%@ page language="java" pageEncoding="UTF-8"%>

          <%@ taglib uri="<%@ taglib uri="<%@ taglib uri="<%@ taglib uri="


          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html:html lang="true">
          ? <head>
          ??? <html:base />
          ???
          ??? <title>tokentest.jsp</title>
          ???
          ??? <meta http-equiv="pragma" content="no-cache">
          ??? <meta http-equiv="cache-control" content="no-cache">
          ??? <meta http-equiv="expires" content="0">???
          ??? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
          ??? <meta http-equiv="description" content="This is my page">
          ? </head>
          ?
          ? <body>
          ????? <br>
          ????? <logic:present name="error">
          ???????? <pre style="color:#ff2255"><bean:write name="error"/></pre>
          ????? </logic:present>
          ????? <center>
          ????? <html:form action="/insert.do" method="post">
          ??????? <table border="0" cellspacing="0" >
          ????????? <tr>
          ??????????? <td width="30%">用戶名</td>
          ??????????? <td width="70%"><html:text property="username"/></td>
          ????????? </tr>
          ????????? <tr>
          ??????????? <td>地址:</td>
          ??????????? <td><html:text property="address"/></td>
          ????????? </tr>
          ????????? <tr>
          ??????????? <td colspan="2"><html:submit value="提交"/></td>
          ????????? </tr>
          ??????? </table>
          ?????? </html:form>
          ????? </center>
          ? </body>
          </html:html>
          頁面的處理Action內容如下:
          ? ?public ActionForward execute(
          ??ActionMapping mapping,
          ??ActionForm form,
          ??HttpServletRequest request,
          ??HttpServletResponse response) {
          ??TokenTestForm tokenTestForm = (TokenTestForm) form;
          ??if(!isTokenValid(request)){ //重復提交
          ???request.setAttribute("error","不能得復提交!!!");
          ???//saveToken(request); 重新生成tokenid,
          ???return mapping.findForward("return");
          ??}else{
          ???resetToken(request);
          ??}
          ??//執行相關操作
          ??System.out.println(tokenTestForm.getUsername()+"--"+tokenTestForm.getAddress());
          ??return mapping.findForward("ok");
          ?}

          至此已完成,至于原理,就自己去查一些資料就完全明白了....


          評論:
          # re: 解決Struts重復提交的問題. 2006-07-27 17:59 | zhang
          好謝謝你的方法,回去試試  回復  更多評論
            
          # re: 解決Struts重復提交的問題. 2008-05-08 16:14 | key159
          看懂了,很好用  回復  更多評論
            
          # re: 解決Struts重復提交的問題. 2009-09-23 16:28 | XD
          不懂,能不能再詳細些???  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 邯郸县| 中宁县| 西宁市| 稷山县| 唐山市| 沂源县| 洛隆县| 保定市| 达州市| 新巴尔虎右旗| 米易县| 双柏县| 高邑县| 磐安县| 宣威市| 渭源县| 桐庐县| 康定县| 庆城县| 革吉县| 遵义县| 沙洋县| 洪雅县| 乡城县| 南昌市| 南汇区| 罗源县| 孙吴县| 娄烦县| 海晏县| 大方县| 阜宁县| 西昌市| 永康市| 永胜县| 元朗区| 锡林浩特市| 微山县| 濮阳市| 文成县| 泸州市|