dwr Bean Converters学习

一种不能采用默认方式定义的converter就是Bean Converter,
这个是将POJO对象转换成javascript相关的数组,反向也一样.
基于安全因素的考虑这种类型的converter不能采用默认的方式实现.
假设有个bean并且通过<create ...>语句设置成远程可用,有种类型的参数他本身是一个带有setter的java bean,但setter会产生严重的隐患.攻击者可能促使这隐患的发生.通过下面的语句就可以设置但个类的bean converter
<convert converter="bean" match="your.full.package.BeanName"/>

要想允许转换指定包或子包下所有类的转换可以按照下面的设置
<convert converter="bean" match="your.full.package.*"/>
很明显,可以采用下面的方式来转换所有的java bean
<convert converter="bean" match="*"/>


如页面js调用:
 var caseObj = new Object();
		 caseObj.caseStatusId=2;
		 caseObj.caseOkday=time;
		 .....			
		 caseObj.repVilActor= repVilActor;		 
		 caseObj.repPerson = repPerson;
		 caseObj.recTownActor=recTownActor;
		 caseObj.repTownActor=repTownActor;
		 caseObj.daiban='${caseForm.caseBean.daiban}'
		 caseObj.caseGid = '${caseForm.caseBean.caseId}';
		 caseObj.recTownDep=recTownDep;
		 caseObj.repAreaActor = repAreaActor;	
		 caseService.updateCase(caseObj);

我们要用到的Java caseService 类转化成一个Javascript对象供我们在页面中使用,这里传递了一个数组
通过配置转换成我们的vo对象;
<create creator="spring" javascript="caseService">
			<param name="beanName" value="caseService" />
		</create>
		<convert converter="bean" match="com.ving.xzfw.vo.Case" />

DWR共有三种Creator,最简单的”new”是调用bean的默认构造函数创建实例.”scripted”允许采用其他脚本语言创建实例.如BeanShell.在远程bean的默认构造函数不能进行进一步配置的情况下这种类型的creator比较有用.”Spring”类型允许你通过spring创建实例.
下面是关于creator的参考资料和配置参数说明.
Creator Parameter User
new class 类的全名称(包括包路径)
scripted language BSF框架支持的脚本语言名称(BSF为apache项目)
scripted script 返回远程对象的脚本,脚本可以指定一些属性,多数情况下一般只设置param节点配置.属性很少设置.
spring Location* 任何以location开头的参数,每个参数都是指定一个spring的配置文件,在参数没有设置的情况下DWR会去读取spring的全局的配置文件.
spring beanName 从配置文件中读取的bean的名称
“scope参数允许你配置creator的生命周期,共有以下几个选项:application,session,request,page.这些参数对于用过jsp或servlet的开发人员并不陌生.

new 如:
<!-- 配置一个creator的创建和远程方法调用设置 :
	 这里面其实就是我们要用到的Java类,名字叫Demo。这个文件的作用就是可以将我们要用到的Java类转化成一个Javascript对象供我们在页面中使用。
	 -->
	<allow>

		<create creator="new" javascript="Demo">

			<param name="class" value="wujincheng.Demo" />

		</create>

	</allow>

spring 如:
	<create creator="spring" javascript="caseService">
			<param name="beanName" value="caseService" />
		</create>


在applicationContext.xml中的注释


<bean id="caseService"
		class="com.ving.xzfw.service.impl.CaseServiceImpl">
		<property name="dao" ref="caseDao"></property>
		<property name="middleExchangeDao" ref="middleExchangeDao" />
	</bean>

你可能感兴趣的:(JavaScript,spring,xml,bean,DWR)