AJAX我也寫!

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

          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                }
          在這里做了判斷,如果沒有就開始產生彈出窗體的代碼:
           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 自己去執行,我有兩個公共的方法,分別封裝了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就拼接出來了。

          當計劃員登錄的時候就彈出窗體,強制選擇,然后刷新父窗體。
          完成。
          但是我不知道這樣做算不算是AJAX技術的體現,我讀了一下ajax tags的 src 它也是往response里面扔東西。請高人指導一下!

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

          Copyright © JavaXP

          主站蜘蛛池模板: 福泉市| 青铜峡市| 旺苍县| 贵州省| 六枝特区| 靖西县| 商河县| 玛曲县| 林州市| 清河县| 宿州市| 独山县| 施秉县| 屏边| 南雄市| 浪卡子县| 兴仁县| 尉氏县| 新兴县| 罗江县| 皮山县| 株洲县| 高碑店市| 邯郸县| 阿图什市| 吉木萨尔县| 香格里拉县| 乐安县| 乌鲁木齐市| 饶平县| 弋阳县| 金昌市| 睢宁县| 亚东县| 百色市| 安塞县| 柘荣县| 来凤县| 商洛市| 泾阳县| 临潭县|