瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          DWR學習及應用(二,forward)

          Posted on 2009-08-25 14:38 瘋狂 閱讀(768) 評論(0)  編輯  收藏 所屬分類: dwr

          使用dwr我們可以動態請求一個頁面內容到當前頁:一下是代碼:

          1,后臺方法:

          public String getInclude() throws ServletException, IOException {
          WebContext ctx = WebContextFactory.get();
          System.out.println(ctx.getCurrentPage());
          ctx.getHttpServletRequest().setAttribute("test", "hello ,test forward");
          return ctx.forwardToString("/iclude.jsp");
          }

           

          2,dwr配置:

           <create javascript="testinclude" creator="new">
          <param name="class" value="com.dwr.TestInclude"/>
          </create>

           3,頁面:

          <html>
          <head>
          <base href="<%=basePath%>">
          <script type="text/javascript" src="dwr/engine.js"></script>
          <script type="text/javascript" src="dwr/util.js"></script>
          <script type="text/javascript" src="dwr/interface/testinclude.js"></script>
          <script type="text/javascript">
          function getInClude(){
          testinclude.getInclude(
          function(data){
          dwr.util.setValue("fq",data,{ escapeHtml:false });
          }
          );
          }
          </script>
          </head>
          <body>
          <input type="button" value="include page"
          onclick="javascript:getInClude()" />
          <div id="fq">
          </div>
          </body>
          </html>

           2,其中使用了

          WebContext ctx = WebContextFactory.get();

          ctx.forwardToString("/iclude.jsp");

          查看dwr源代碼:

           getServletContext().getRequestDispatcher(url).forward(realRequest, fakeResponse);

           其中:fakeResponse

          HttpServletResponse fakeResponse = new SwallowingHttpServletResponse(realResponse, sout, realResponse.getCharacterEncoding());

            而SwallowingHttpServletResponse使用了WriterOutputStream

           public SwallowingHttpServletResponse(HttpServletResponse response, Writer sout, String characterEncoding)
          {
          super(response);
          pout = new PrintWriter(sout);
          outputStream = new WriterOutputStream(sout, characterEncoding);
          this.characterEncoding = characterEncoding;
          }

           WriterOutputStream:也就是對 ServletOutputStream的封裝。

          public final class WriterOutputStream extends ServletOutputStream

           




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


          網站導航:
           
          主站蜘蛛池模板: 布尔津县| 长丰县| 平泉县| 萝北县| 乐至县| 彭山县| 姜堰市| 金川县| 乌兰浩特市| 周口市| 阳春市| 永清县| 福州市| 新田县| 千阳县| 盐山县| 北辰区| 抚宁县| 鸡泽县| 中卫市| 鹤山市| 祁阳县| 平阳县| 穆棱市| 永济市| 县级市| 仪陇县| 利津县| 武功县| 宜黄县| 苗栗县| 新密市| 山西省| 应城市| 屏东县| 肥城市| 怀化市| 西和县| 鞍山市| 响水县| 金寨县|