很久没上来冒泡了 ,把dwr的使用经验搁上来,以后备用。 :wink:
使用dwr当然少不了 dwr.jar 包了,放进去,然后在web.xml中配置我们的dwrServlet
代码贴上:
这个搞定了之后,写个dwr.xml放在WEB-INF下,配置指定的java 类。
看代码:
<allow> 标签中包括可以暴露给 javascript 访问的东西,
<create> 标签中指定 javascript 中可以访问的 java 类,并定义 DWR 应当如何获得要进行远程的类的实例。
creator="new" 属性指定 java 类实例的生成方式, new 意味着 DWR 应当调用类的默认构造函数来获得实例,其他的还有 spring 方式,通过与 IOC 容器 Spring 进行集成来获得实例等等。
javascript=" MainViewAjaxUtil" 属性指定 javascript代码访问对象时使用的名称。<param> 标签指定要公开给 javascript 的 java 类名。
JSP 页面中调用:
以上三条中下面两条当你用到dwr时是jsp应该包含的,把你在dwr.xml中配置好要用到的访问对象也包含进来,如第一条。
然后在script代码中如下使用:比如你的MainViewAjaxUtil.java 中有方法叫 reloadXxx(),希望页面7秒刷新reloadXxx()中的内容,可以这么做,
当你需要reloadXxx()方法返回一个你创建的类时,这是需要在dwr.xml中做如下配置,比如我reloadXxx()返回一个Human对象:
加粗部分为需要加入的,其中value是这个Human所包含的属性
这样在页面执行无刷新更新就完成了。
如果有不对的地方请直接指出,学习,学习!
使用dwr当然少不了 dwr.jar 包了,放进去,然后在web.xml中配置我们的dwrServlet
代码贴上:
<servlet>
<servlet-name>DwrServlet</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>12</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DwrServlet</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
这个搞定了之后,写个dwr.xml放在WEB-INF下,配置指定的java 类。
看代码:
<dwr>
<allow>
<create creator="new" javascript="MainViewAjaxUtil" scope="application">
<param name="class" value="com.xll.ajax.MainViewAjaxUtil" />
</create>
</allow>
</dwr>
<allow> 标签中包括可以暴露给 javascript 访问的东西,
<create> 标签中指定 javascript 中可以访问的 java 类,并定义 DWR 应当如何获得要进行远程的类的实例。
creator="new" 属性指定 java 类实例的生成方式, new 意味着 DWR 应当调用类的默认构造函数来获得实例,其他的还有 spring 方式,通过与 IOC 容器 Spring 进行集成来获得实例等等。
javascript=" MainViewAjaxUtil" 属性指定 javascript代码访问对象时使用的名称。<param> 标签指定要公开给 javascript 的 java 类名。
JSP 页面中调用:
<script type='text/javascript'
src='/dwr/interface/MainViewAjaxUtil.js'></script>
<script type='text/javascript' src='/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/util.js'></script>
以上三条中下面两条当你用到dwr时是jsp应该包含的,把你在dwr.xml中配置好要用到的访问对象也包含进来,如第一条。
然后在script代码中如下使用:比如你的MainViewAjaxUtil.java 中有方法叫 reloadXxx(),希望页面7秒刷新reloadXxx()中的内容,可以这么做,
<body onload="init()">
....
</body>
<script type="text/javascript">
function init(){
window.setTimeout("reload()",7000);
}
function reload(){
MainViewAjaxUtil.Xxx(
function(data){ .....} //data 是用来接收reloadXxx()方法的返回值对象的,data中的数据可以直接 data.mm获取
);
}
</script>
当你需要reloadXxx()方法返回一个你创建的类时,这是需要在dwr.xml中做如下配置,比如我reloadXxx()返回一个Human对象:
<dwr>
<allow>
<create creator="new" javascript="MainViewAjaxUtil" scope="application">
<param name="class" value="com.xll.ajax.MainViewAjaxUtil" />
</create>
[b]<convert converter="bean"
match="com.xll.Human">
<param name="include" value="name,age"/>
</convert>[/b]
</allow>
</dwr>
加粗部分为需要加入的,其中value是这个Human所包含的属性
这样在页面执行无刷新更新就完成了。
如果有不对的地方请直接指出,学习,学习!