瘋狂

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

          DWR學習及應用(二,forward)

          Posted on 2009-08-25 14:38 瘋狂 閱讀(767) 評論(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

           




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


          網站導航:
           
          主站蜘蛛池模板: 墨脱县| 乌兰浩特市| 米泉市| 常州市| 织金县| 金川县| 馆陶县| 库车县| 丹东市| 虎林市| 安新县| 太康县| 扬中市| 无锡市| 安顺市| 定边县| 平昌县| 老河口市| 兴仁县| 大理市| 苍梧县| 克山县| 汝南县| 清河县| 扶风县| 安庆市| 虎林市| 晋江市| 高密市| 百色市| 临泽县| 靖远县| 芜湖县| 三穗县| 汤原县| 吴桥县| 乌鲁木齐市| 北海市| 元氏县| 蓬莱市| 仙游县|