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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 信宜市| 琼结县| 渝中区| 饶河县| 大洼县| 阿坝县| 阿尔山市| 绵阳市| 内黄县| 故城县| 榆树市| 鱼台县| 泸州市| 汾阳市| 辽宁省| 林州市| 龙口市| 庆元县| 光山县| 华坪县| 布拖县| 柳州市| 舞阳县| 灌云县| 屏东县| 铜梁县| 平南县| 勃利县| 沙田区| 仙桃市| 宜兰县| 新乡市| 若羌县| 九江县| 昭觉县| 阿克苏市| 株洲市| 丘北县| 房产| 乐清市| 桐乡市|