<dwr>
<allow>
<!--使用new的创建器,创建UserLogic类型对象,'javascript'属性说明了页面包含js名称-->
<create javascript="UserLogic" creator="new">
<!--说明要创建对象的类型-->
<param name="class" value="org.zx.bean.UserLogic"></param>
<!--说明暴露给页面中可调用的方法-->
<include method="alterUser"/>
</create>
调用java方法要传入一个bean并且返回也是一个bean,所以要用bean转换器转换一把
注意:转换器是双向的:可以将js对象转成Java对象,反之亦然.
match说明了要转换的bean的类型,converter说明用什么转换器
-->
<convert match="org.zx.bean.User" converter="bean">
<!--
设置bean中可以被转换的属性
-->
<param name="include" value="userName,password"></param>
</convert>
</allow>
</dwr>
Object转换器通过Java的反射来访问Java对象的属性,即Object转换器无须提供setter和getter方法也可以访问对应属性;而Bean转换器则通过Introspection来访问Java对象的属性,所以必须要有setter和getter方法
常用的转换器: Array转换器,Date转换器,Map转换器,List转换器.
异常转换器:
<convert match="java.lang.NullPointerException" converter="exception"></convert>
跨域访问问题:
1.设置引用业务js对象的_path属性,例如:UserLogic._path="http://10.164.130.52:8080/DWRBean/dwr";
2.在web.xml中加入DWR的Servlet的配置参数:
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>allowGetForSafariButMakeForeryEasier</param-name>
<param-value>true</param-value>
</init-param>
3.设置DWR引擎的方法:
DWREngine.setMethod(DWREngine.ScriptTag);