dwr应用

5 篇文章 0 订阅

引言:DWR是一个框架,简单的说就是能够在javascript 直接调用java方法,而不必去写一大堆javascript代码,

他是基于Ajax实现的,可以实现无刷新效果

1.dwr 配置之web.xml

<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<!-- 这个参数默认的是false,如果是true我们可以通过http://localhost:8080/shxx/dwr/interface/XjzxbjFacade.js 
			看到你部署的每个dwr class,并且可以测试java代码的每个方法是否运行正常,正式环境下一定要把这个参数设置为false
		 -->
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>classes</param-name>
			<param-value>java.lang.Object</param-value>
		</init-param>
		<init-param>
			<param-name>crossDomainSessionSecurity</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>activeReverseAjaxEnabled</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>maxWaitAfterWrite</param-name>
			<param-value>-1</param-value>
		</init-param>
		<init-param>
			<param-name>disconnectedTime</param-name>
			<param-value>60000</param-value>
		</init-param>
		<init-param>
			<param-name>config-1</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_core.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-2</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_xt.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-3</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_wf.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-4</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_zb.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-5</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_xm.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-6</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_cw.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-7</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_dzjj.xml</param-value>
		</init-param>
		<init-param>
			<param-name>config-8</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_xj.xml</param-value>
		</init-param>
	  <init-param>
			<param-name>config-9</param-name>
			<param-value>/WEB-INF/classes/dwr/dwr_jc.xml</param-value>
		</init-param>
		<load-on-startup>100</load-on-startup>
	</servlet>
<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

注意:1.一个servlet,对应多个dwr.xml配置文件 ,这种情况下 param-name的值必须以config开头,param-name的个数可以>=0个,如果等于0

呢么将会读取WEB_INF/dwr.xml,如果大于0个,则这个文件不会被读取。

2.dwr.xml的配置。

<dwr>
	<allow>
		<convert match="java.lang.StringBuffer" converter="bean"/>
		<!-- 收费标准页面 根据当前项目的 流程环节 判断显示那些收费项目  by黄敏 2013-06-09-->
		<create javascript="SfbzFacadeImpl" creator="spring">
			<param name="beanName" value="cw.sfbzFacade"/>
			<include method="getXM_HJMC"/>
			<include method="getSfsfbyallfb"/>
		</create>
	</allow>
</dwr>
注意:<convert> 负责这些方法的参数和返回值。coverter 指定是按照javabaean的方式方式匹配。

<allow>中包括可以暴露给javascript访问的东西。

    <create> 标签中指定javascript中可以访问的java类,并定义dwr如何获得要进行的远程类的实例 。

 creator =“new” 指定java类实习的生成方式,new 意味着dwr应当调用类的默认构造函数来获得实例,

 其他还有spring,通过IOC容器获得实例。javascript代码指定访问对象时使用的名称。

 <param> 标签 指定要公开给javascript的java类名。

 <include> 标签指定要公开给javascript的方法。不指定的话就公开所有方法。

 <exclude> 标签指定要防止被访问的方法。

3.javascript 中的调用。

<script jwcid="@Any" type="text/javascript" src="ognl:request.contextPath + '/dwr/engine.js'"></script>
<script jwcid="@Any" type="text/javascript" src="ognl:request.contextPath+'/dwr/interface/XjzxbjFacade.js'" />
也可以加上util.js.,,,XjzxbjFacade.js  是dwr根据配置文件自动生成的。
js中的具体应用。

XjzxbjFacade.saveForXJ_TBSJ(tbsjid,sjz,xjxid,zbjlid,document.getElementById("xmxh").value,document.getElementById("bxh").value,document.getElementById("bmgysxh").value,function(map){
		//回写小计
			if(map.XIAOJI!=null){
			    document.getElementById('xj'+map.XIAOJITBSJID).value= map.XIAOJI;
				document.getElementById(map.XIAOJITBSJID).value= map.XIAOJI;
				document.getElementById('zj'+map.ZONGJITBSJID).value= map.ZONGJI;
			    document.getElementById(map.ZONGJITBSJID).value= map.ZONGJI;
			}
		});

前面的是要传入的参数,后面的function(map)是接受这个方法返回的值。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值