dwr应用

来源:互联网 发布:怎么提高淘宝店铺信誉 编辑:程序博客网 时间:2024/05/16 05:48

引言: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