<html>
<head>
<title>
</title>
<script type='text/javascript' src='/DWR/dwr/interface/ResourceForward.js'></script>
<script type='text/javascript' src='/DWR/dwr/engine.js'></script>
<script type='text/javascript' src='/DWR/dwr/util.js'></script>
<script type="text/javascript">
function forward() {
ResourceForward.getInclude(function(data) {
dwr.util.setValue("forward", data, {escapeHtml:false})
});
}
</script>
</head>
<body>
<p>
<input value="Include Page" type="button" onclick="forward()"/><br/>
Included Page:
</p>
<div id="forward"></div>
</body>
</html>
通常情况下, DWR调用的代码就是一个POJO, 与web无任何关系。 但在本例子中, 我们想探索一些关于web服务器的知识, 所以我们使用WebContext 来访问ServletContext.
这个例子与我们上面说过的那个动态文本的例子存在相似之处,不同之处就是我们现在需要调用一个HTML页面。
public String getInclude() {
WebContext wctx = WebContextFactory.get();
return wctx.forwardToString("/simpletext/forward.html");
}
在上面的例子中,我们处理的是纯粹的文本,但现在我们要处理的是html, 为了避免XSS 攻击, DWR 提供了对HTML字符的过滤, 但是, 有些时候我们知道我们的html是安全的(如本例), 我们就可以如下设置。
function forward() {
Demo.getInclude(function(data) {
dwr.util.setValue("forward", data, { escapeHtml:false });
});
}
第三个可选参数是众多DWR 函数中的一个。 它允许你自定该函数的行为,在本例中, 我们将其设置为false, 告诉DWR无需过滤html