分类: Java
2009-09-22 10:02:52
本文处理的问题是:由一个JSP页面提交一个请求,在处理这个请求之前,先要进行一个逻辑判断,由此判断决定是否对此请求进行处理,并且这个逻辑判断只能在后台的代码里进行,不能在JSP页面用JS完成。这里的提示也就是针对不对请求进行处理时,返回原页面或指定页面,并以弹出JS窗口的形式进行提示。
本文实现的方式有两种,相信用ajax实现会更帅气,但本文由于时间等原因,没用ajax去实现。
1 返回一段JS代码,进行提示并实现跳转
if(state>1){ // 逻辑判断的条件
String ctx=request.getContextPath();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("");
out.close(); //这句不可不写
return mapping.findForward("complete");
}
1 页面上提交请求到ACTION 1
2 ACTION 1处理请求,如要跳转,则跳转到一个ACTIN 2
3 ACTTION 2方法中request加入标识,以便在页面上用JS获得并提示相关信息
4 用于提示的页面上用JS获得标识,并进行提示。
ACTION 1:
return mapping.findForward("alertCanNotDelete");
配制文件:
<action path="/mypath/action1" name="myForm" scope="request"
parameter="method"
type="com.Action1">
<forward name="alertToCanNotDelete"
path="/mypath/action2.do?method=alertMethod">
forward>
action>
ACTION 2: alertMethod方法:
request.setAttribute("alertNote", "alertNote");
return mapping.findForward("showpage");
jsp 页面上JS显示:
调用 入口:
获得标识并显示:
function noteAlert(){
var alertNote = "${alertNote}";
if("alertNote" == alertNote)
{
alert("当前项目存在相关项目,不可删除!"); //可放在资源文件里
}
}