DWR学習と応用(二,forward)
2456 ワード
dwrを使用すると、現在のページにページの内容を動的に要求できます.次はコードです.
1、バックグラウンドメソッド:
2,dwr構成:
3,ページ:
2、その中には
WebContext ctx = WebContextFactory.get();
ctx.forwardToString("/iclude.jsp");
dwrソースコードを表示するには、次の手順に従います.
内訳:fakeResponse
一方、SwallowingHttpServeretResponseはWriterOutputStreamを使用しています
WriterOutputStream:つまりサーブレットOutputStreamのパッケージです.
public final class WriterOutputStream extends ServletOutputStream
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());
一方、SwallowingHttpServeretResponseはWriterOutputStreamを使用しています
public SwallowingHttpServletResponse(HttpServletResponse response, Writer sout, String characterEncoding)
{
super(response);
pout = new PrintWriter(sout);
outputStream = new WriterOutputStream(sout, characterEncoding);
this.characterEncoding = characterEncoding;
}
WriterOutputStream:つまりサーブレットOutputStreamのパッケージです.
public final class WriterOutputStream extends ServletOutputStream