<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<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>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_xm.xml</param-value>
</init-param>
<init-param>
<param-name>config-5</param-name>
<param-value>/WEB-INF/classes/dwr/dwr_gys.xml</param-value>
</init-param>
<init-param>
<param-name>config-6</param-name>
<param-value>/WEB-INF/classes/dwr/dwr_zj.xml</param-value>
</init-param>
<init-param>
<param-name>config-7</param-name>
<param-value>/WEB-INF/classes/dwr/dwr_wt.xml</param-value>
</init-param>
<init-param>
<param-name>config-8</param-name>
<param-value>/WEB-INF/classes/dwr/dwr_ht.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>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
中的值,可以查看dwr.jar中DWrServlet.class的路径。<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<convert match="java.lang.StringBuffer" converter="bean"></convert>
<!--公共操作 登录账号唯一性检查 generateDlh:供应商注册 产生供应商操作员登录号-->
<create javascript="GysEntity" creator="spring">
<param name="beanName" value="gys.gysEntity" />
<include method="generateDlh" />
<include method="isZzjgdmhRepeat" />
<include method="isGsmcRepeat" />
</create>
<create javascript="gysshFacade" creator="spring">
<param name="beanName" value="gys.gysshFacade"></param>
<include method="getSpsxZt"/>
<include method="syncWwzcFiles" />
</create>
</allow>
</dwr>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<converter>、<convert>、<create>
这三个标签。
1 <converter>
标签是dwr中内置的转换器。我们也可以使用自己写的转换器,不过dwr提供的转换器已经足够了,所以这个标签,一般不会自己去写。
2 <convert>
标签是将converter中定义的转换器映射到的具体类型 <convert match="java.lang.StringBuffer" converter="bean"></convert>
<!-- convert就是配置哪些java bean是可以通过dwr转换的,其包含converter,match属性,coverter就是选择转换的converter由init中配置,match就是可以转换的java bean -->
3 标签是dwr中重要的标签,用来描述 java(服务器端) 与 javascript (客户端)的交互方式。 其中,creator和javascript是必须属性,其他可以忽略。creator包含有以下几个值: new:Java用“new”关键字创造对象 none:它不创建对象 (v1.1+) scripted:通过BSF使用脚本语言创建对象,例如BeanShell或Groovy spring:通过Spring框架访问Bean struts:使用Struts的FormBean (v1.1+) jsf:使用JSF的Bean (v1.1+) pageflow:访问Weblogic或Beehive的PageFlow (v1.1+) ejb3:使用EJB3 session bean (v2.0+) [此处使用的是与Spring整合]
<create javascript="GysEntity" creator="spring">
<param name="beanName" value="gys.gysEntity" />
<!-- 加include可以具体指定java类中关的方法,不加则默认类中全部为public的方法 -->
<include method="generateDlh" />
<include method="isZzjgdmhRepeat" />
<include method="isGsmcRepeat" />
</create>
spring.xml 配置文件中的bean→id,对应dwr.xml 中的param→value
dwr.xml 中的create→javascript,对应jsp/html 中引用的js文件
var id = document.getElementById("blb").value;
var flag=false;
DWREngine.setAsync(false);
SelectFbxxFacade.getDmbzById(id,function(dmbz){ //dmbz对应着java方法的返回值
var data = dmbz.substr(0,8);
if(data==bfl_hw){//所选择采购分类为货物
if(!checkFormItem(myform.cgsl, "N" ,9, 0,5,"采购数量" )){ flag=true;return false;}
}
});//调用java方法,第二个参数是回调函数(也可写在外面)
DWREngine.setAsync(true);
if(flag){
return false;
}
<!-- DWREngine.engine.setAsync(false); //false为同步,true(默认)为异步 -->
java方法: