AJAX我也寫!

          Posted on 2006-01-12 00:09 JavaXP 閱讀(1731) 評論(0)  編輯  收藏 所屬分類: Java
          AJAX應(yīng)該是現(xiàn)在談?wù)撟疃嗟脑掝},一心寫業(yè)務(wù)邏輯的我也開始動心了,因為沒有研究過于深入所以寫的都是粗制濫造的東西,兄弟們見諒了,見笑了!
          我不知道自己的理解是不是正確,下面是我實現(xiàn)的一段代碼~
          問題:XXX物資管理系統(tǒng),要求計劃員登錄時選擇一個倉庫類別,還有登錄上去僅僅顯示此倉庫類別下的倉庫。
          方案:1,修改登錄界面讓他可以選擇登錄身份當(dāng)選的是計劃員的時候再出倉庫類別的選項。(不爽~要該的東西太多,而且登錄過于復(fù)雜,讓局長也這樣登錄我就死了!)
                      2,在登錄的時候去檢擦session,isHas(storageType)?正常進(jìn)入:彈出窗口選擇一個再回一次登錄頁面~(改的東西不多·多加幾個方法和類)
          實現(xiàn):選擇第二種方法~
          具體代碼片斷:

          logAction:
          1if(request.getSession().getAttribute(MmisConstants.STORAGETYPE_SESSION)==null{    
                                  PlanManagerLoginAjax.returnResponse(request, response);
          2   }
          else if(request.getSession().getAttribute(MmisConstants.STORAGETYPE_SESSION)!=null && 
                                                                                               request.getSession().getAttribute(MisConstants.USER_ATTRIBUTE)!=null{
          4                    forward = MmisConstants.FORWARD_PLAN;
          5                    request.getSession().setAttribute(MisConstants.MENU_NAME,
          7                        MmisConstants.MENU_BUSINESS_PLAN);
          8                }
          在這里做了判斷,如果沒有就開始產(chǎn)生彈出窗體的代碼:
           1public class PlanManagerLoginAjax {
           2    static Logger log = Logger.getLogger("com.kaiwang.mmis.ajax.login.PlanManagerLoginAjax");
           3    private static String HTML = "',window,'dialogWidth:500px;dialogHeight:400px;dialogLeft:200px;dialogTop:100px;center:yes;help:no;resizable:no;status:no');";
           4    public static void returnResponse(HttpServletRequest request, HttpServletResponse response) throws IOException {
           5        
           6        StringBuffer htmlString = new StringBuffer();
           7        AjaxUtils.buildHtmlHead(htmlString);
           8        String url = request.getContextPath() + "/storageTypePrepareAction.do?action=select";
           9        htmlString.append("showModalDialog('" + url + HTML);
          10        
          11        AjaxUtils.buildHtmlFinality(response, htmlString);
          12        log.info(htmlString.toString());
          13    }

          14    
          15    public static void closeSelectWindow(HttpServletRequest request, HttpServletResponse response) throws IOException {
          16        
          17        StringBuffer htmlString = new StringBuffer();
          18        AjaxUtils.buildHtmlHead(htmlString);
          19        
          20        htmlString.append("window.dialogArguments.location.reload();");
          21        htmlString.append("window.close();");
          22
          23        
          24        AjaxUtils.buildHtmlFinality(response, htmlString);
          25        log.info(htmlString.toString());
          26    }

          27}

          28
          我用了一個dialog來做彈出的模式,其實就是在往response里面放東西,然后IE 自己去執(zhí)行,我有兩個公共的方法,分別封裝了HTML的頭和尾:
           1    public static void buildHtmlFinality(HttpServletResponse response,
           2        StringBuffer htmlString) throws IOException {
           3        response.setContentType("text/html;charset=gb2312");
           4        htmlString.append("</script>");
           5
           6        PrintWriter out = response.getWriter();
           7        out.println(htmlString.toString());
           8        out.flush();
           9        out.close();
          10    }

          11
          12    /**
          13     *
          14     * @param htmlString
          15     * @author gary.lee
          16     */

          17    public static void buildHtmlHead(StringBuffer htmlString) {
          18        htmlString.append("<script language=\"javascript\">");
          19    }

          這樣一個斷js就拼接出來了。

          當(dāng)計劃員登錄的時候就彈出窗體,強(qiáng)制選擇,然后刷新父窗體。
          完成。
          但是我不知道這樣做算不算是AJAX技術(shù)的體現(xiàn),我讀了一下ajax tags的 src 它也是往response里面扔?xùn)|西。請高人指導(dǎo)一下!

          posts - 19, comments - 31, trackbacks - 0, articles - 2

          Copyright © JavaXP

          主站蜘蛛池模板: 东宁县| 乐业县| 聂拉木县| 通海县| 广饶县| 水城县| 铅山县| 兴国县| 来安县| 昌平区| 哈巴河县| 宽甸| 马尔康县| 浦北县| 固镇县| 宜兰县| 新邵县| 准格尔旗| 剑阁县| 江山市| 洱源县| 方山县| 确山县| 夏河县| 靖江市| 谷城县| 子长县| 太谷县| 正镶白旗| 临沂市| 孝昌县| 金川县| 精河县| 河西区| 军事| 临漳县| 乡城县| 湖南省| 丰都县| 平度市| 东乡|