在工程中使用DWR
DWR的使用简单,稍有java的web应用开发基础的人参照dwr的在线文档都应该没有什么问题。下面两个步骤,就可以利用js来访问自己的写的Java对象的方法了。
1.将dwr的servlet加入到web应用的web.xml中,
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
2.在和web.xml的同一级目录创建dwr.xml。该文件的文件格式可以参照dwr20.dtd,例如下面的代码是使用dwr来调用java.util.Date的方法,将Date类添加到dwr.xml中的情况。
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
</allow>
</dwr>
有了上面两步,重启tomcat(或者重启你的web应用)dwr就可以访问了。假设你的web应用在tomcat的webapp放在文件夹test中。那么你访问http://localhost:8080/test/dwr/,如果没有错误你就可以访问到dwr的“类列表”页面。
访问DWR
有了上面的步骤,下面我们可以通过编写html页面中的js代码来访问我们定义的java对象。访问方法在dwr的手册和http://localhost:8080/test/dwr/页面中各个发布类的链接进去的页面中也有详细的说明。在此还是以前面定义的JDate为例来说明。
1.在需要调用JDate的html页面中写明js的引用(如前假设web应用名为test)。
<script src='/test/dwr/engine.js'></script>
<script src='/test/dwr/interface/JDate.js'></script>
2.通过js代码来调用例如我想获得当前时间并在div中显示出来如下。
<script language="javascript">
function update() {
var name = dwr.util.getValue("demoName");
JDate.toString(function(data) {
dwr.util.setValue("show_div", data);
});
}
</script>
<div id="show_div"></div>