在Struts的Action中使用response.sendRedirect("url")

williamxiao 2008-09-30 04:27:23
主要是為了解決在頁面中提交表單後,用戶再次刷新會重復提交的問題。
在解決此問題使用過以下幾種方法:
1.在頁面的JavaScript中直接加入提交狀態值去判斷的辦法,但是對於F5刷新無效。
2.在頁面右加入session.putValue("pagestate","*.jsp");
然後在Struts的Action中--
HttpSession session=request.getSession();
session.getValue("pagestate");
if(pagestate=="Over")
{
//映射至錯誤頁面
return mapping.findForward("error");
}
else
{
session.putValue("pagestate","Over");
//....再執行其它業務
//最後映射至原頁面
return mapping.findForward("原頁面映射");
}
這種辦法(2)也行不通,mapping.findForward應該是使用的請求重定向,因此刷新後還是會重復提交。
3.想使用response.sendRedirect("url")來進行響應轉發,但是會報錯(Unreachable code)

哪位大蝦有解決的辦法?
...全文
603 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamxiao 2008-10-04
  • 打赏
  • 举报
回复
問題已經解決,可以在struts-config.xml中進行配置將Action的<forward redirect="true"/>這樣即可實現response.sendRedirect("url")請求重定向。至於重復提交還最好的方法還是得使用令牌機制。謝謝各位!
williamxiao 2008-10-04
  • 打赏
  • 举报
回复
問題已經解決,可以在struts-config.xml中進行配置將Action的<forward redirect="true"/>這樣即可實現response.sendRedirect("url")請求重定向。至於重復提交還最好的方法還是得使用令牌機制。謝謝各位!
williamxiao 2008-10-04
  • 打赏
  • 举报
回复
不會吧,繁體也不行啊!
java__king 2008-10-01
  • 打赏
  • 举报
回复
下次提问的时候用简体中文会有更多人回你的
游_子 2008-10-01
  • 打赏
  • 举报
回复
用cookie,每次提交写入一个cookie值,再次提交就判断cookie有不有值

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧