Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51071
  • 博文数量: 12
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-11 10:07
文章分类

全部博文(12)

文章存档

2011年(1)

2009年(11)

我的朋友

分类: 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");

          

}

 

2 由Action实现跳转并加入是否进行提示的标识,在页面上用JS进行提示

 

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("当前项目存在相关项目,不可删除!"); //可放在资源文件里

    }

          

}

 

 

1,2这两种方法相比,第2种方法能够将提示放在资源文件里,轻松实现多语言显示。而1达到这样的效里比较麻烦,可以考虑自己编码实现,大体思路是先获得当前采用什么语言,再去读取相应的资源文件,再获得相应属性的值进行显示。

 

 

 

 

 

 

 

阅读(5323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~