当前位置: 代码迷 >> Web前端 >> dwr运用小结
  详细解决方案

dwr运用小结

热度:45   发布时间:2012-09-05 15:19:34.0
dwr使用小结
很久没上来冒泡了 ,把dwr的使用经验搁上来,以后备用。

   使用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所包含的属性

这样在页面执行无刷新更新就完成了。

如果有不对的地方请直接指出,学习,学习!
  相关解决方案