posts - 3,  comments - 9,  trackbacks - 0

          ? 對于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 閱讀(15156) 評論(9)  編輯  收藏 所屬分類: Some Other

          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;  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          do something by java

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阳信县| 左权县| 荥阳市| 崇左市| 乳山市| 浦县| 云和县| 班玛县| 镇宁| 兴宁市| 乐东| 太和县| 东阿县| 丽江市| 海原县| 连州市| 金堂县| 景泰县| 林口县| 淮北市| 大石桥市| 巴林左旗| 太仓市| 苏尼特右旗| 曲阜市| 金华市| 和林格尔县| 巴林左旗| 南华县| 宜宾市| 左权县| 米易县| 阳泉市| 资源县| 卓资县| 诸城市| 深圳市| 邯郸市| 漳浦县| 池州市| 和平县|