Java中关于弹出对话框的问题

  对于C/S模式下的对话框弹出问题就不说了,这里只讨论B/S模式下的实现.
  开发环境是:struts+hiberinate+spring
  遇到的问题是在JSP页面新增成功后弹出新增成功的提示对话框.
  刚开始觉得在JAVA中很不容易实现,因为以前写C#时习惯了一种写法:Response.Write("<script>alert('say what you want to say');</script>");但在JAVA中我却不知道在action中去怎么写出这样的代码了.为此感觉不好做,但又不得不做,所以就只有想另外一种办法了.问题是解决了,但总感觉有些郁闷,为什么不可以更简单的实现呢?
    下面是我实现的过程.JSP页面加了一个<html:hidden property="propertyName" />,然后就是新增操作的action对应的form的后台代码中加了变量propertyName和与此对应的getter和setter属性,这样在action中当新增成功后就通过form中的setter属性对字段赋值.然后通过脚本来取得JSP页面上的隐藏控件(<html:didden/>)的value.这样做判断就可以实现了.
  也不知道大家都有什么好的方法,希望贴出来学习一下.
   下边是部分代码:
   action部分代码:
     public ActionForward sumbit(ActionMapping mapping,
      ....
      if (isAdd) {
        bookVhlForm.setBookNo(bookNo);
        bookVhlForm.reset(mapping,request);
        this.saveErrors(request, errors);
        return mapping.findForward("bookVehicle");
      }
      ...
       return mapping.findForward("bookVehicle");
     }
   actionForm部分代码:
      package com.portal.web.vehicleManage.form
         import org.apache.struts.action.*;
         import javax.servlet.http.*;
         public class BookVhlForm    extends ActionForm {
         ...
         private String bookNo;
         ....
         public String getBookNo() {
             return bookNo;
        }
        public void setBookNo(String bookNo) {
          this.bookNo = bookNo;
        }
   JSP脚本:
      function bookNo(){
          var bookNo=document.all("bookNo").value; 
          if(bookNo!=""){ 
            alert("您的预约登记已申请成功,预约登记号为:"+ bookNo); 
          } else{ 
            alert("do the operate which you want!");
           } 
         }

posted on 2006-07-28 16:27 Lazy dog 阅读(2545) 评论(9)   编辑   收藏 所属分类: Some Other
<script type="text/javascript"> // </script>

FeedBack:
#  re: Java中关于弹出对话框的问题
2006-07-28 17:31 | hiswing
其实java中也很好实现这个功能。
function check() {
var flag = '<%=request.getAttribute("key")%>';
if (flag != "") {
alert("您的预约登记已申请成功,预约登记号为:"+ bookNo);
} else {
alert("do the operate which you want!");
}
}

只要在Action中加入:request.setAttribute("key", "");   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-28 17:35 | hu
我也在痛苦中。
用的方法也很土。
就是在action设置一个变量。   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-28 17:56 | liujia
java里面也有response对象阿,如果你用的是struts,那就和c#没什么区别;如果是webwork,倒是不方便直接拿到response对象   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-29 14:44 | endisoft
方法的确有点普通
不过,也不错了   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-30 10:13 | IBM
PrintWriter out = response.getWriter();
out.print("<script>alert('say what you want to say');</script>");
out.colose();
return mapping.findForward("......");   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-30 16:44 | jspark
这种方法实现有点累赘,而且不能重用。

建议用两种:
在根目录写一个公用的jsp

二,自己写一个ResponstUtils来实现,比如,我的一个实现是这样:
//提示并返回值同时关闭当前窗口,只适用于用window.open打开的窗口
public static void alertAndReturnWithOpen(HttpServletResponse response, String msg, boolean b)
{
try
{
response.setContentType("text/html; charset=GBK");
response.getWriter().println("<script>");
response.getWriter().println("alert('" + msg + "');");
if(b){
response.getWriter().println("opener.location.reload();");
}
response.getWriter().println("window.close();");
response.getWriter().println("</script>");
}
catch (IOException e)
{}
}
   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-07-31 08:28 | Lazy dog
谢谢大家给出了这么多的方法和提示,思路开阔了好多.   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-08-01 12:46 | lionheart163
@jspark
这还不如做成一个taglib,按不同参数进行调用,

还有个问题,如果client 和server要交互几次,根据confirm的结果提交不同的表单,然后又一个confirm,不知道有什么幽雅的方法实现吗?好象srping webwork有这方面的内容,有时间去研究下   回复   更多评论
  
#  re: Java中关于弹出对话框的问题
2006-08-06 23:02 | 誰伴我闖蕩
PrintWriter out = response.getWriter();
out.write( "<script language=/"javascript/">" );
out.write( "alert(/"" + msg + "/");" );
out.write( "location.href=/"" + url + "/";" );
out.write( "</script>" );
return null;   回复   更多评论
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值