使用
struts
做項目時,通常在信息錄入頁面點擊
[
保存
]
按鈕后會跳轉到一個“保存成功!”的提示頁面,小小的提示會帶來一些問題:
l
????????
多設計一個頁面;
l
????????
用戶多增加一步操作(特別是在信息修改頁面);
l
????????
帶來頁面刷新的重復提交的問題;
我們改變一下思路會帶來意想不到的效果,同時也規避了以上問題。
方法一
?
1、
?
修改你的信息錄入頁面,加入如下腳本
……
<iframe name="tagFrame" style="display:none" frameborder="0"></iframe>
……
<script language="JavaScript">
<!--
//
保存信息
function saveInfo() {
??? testForm.action="test.do?method=save";?
??? testForm.target="tagFrame";
??? testForm.submit();
}
//-->
</script>
?
|
?
2、
?
修改你的提示頁面
<%@ page contentType="text/html; charset=GBK" %>
?
<script language="javascript">
??? alert("
保存成功!
");
??? //
這里是等待你點擊
alert
的確定按鈕后跳轉,神奇的
js
??? parent.window.location.href='test.do?method=test';
</script>
|
簡單改一下就
jsp
收獲還不小。
方法二
?
讓action返回javascript完成提示和跳轉:
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
??????????? HttpServletResponse response) throws Exception {
。。。
//
發送的信息
??????? String msg = "alert('
操作成功!
');location.href='test.do?method=test';";
??????? writeJsToFrontPage(response, msg);
?
??????? return null;
}
/** ???? *
向前端頁面發送
javascript
腳本
???? * ???? * @param response ???? * @param text ???? * @throws IOException ???? */?
protected void writeJsToFrontPage(HttpServletResponse response,
String msg) throws IOException {
??????? response.setContentType("text/html; charset=utf-8");
??????? response.setHeader("Cache-Control", "no-cache");
??????? PrintWriter pw = response.getWriter();
??????? pw.write("<SCRIPT TYPE='text/javascript'>" + msg + "</SCRIPT>");
??????? pw.close();
??? }
|
?
posted on 2006-10-20 17:43
野草 閱讀(2951)
評論(2) 編輯 收藏 所屬分類:
2shtv