一种不能采用默认方式定义的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>
分享到:
相关推荐
- 在`dwr.xml`中使用`<creators>`元素引用Spring的bean。 ##### 4.3 DWR与JSF整合 - **整合要点**: - 使用`JSFCreator`来创建JSF托管bean。 - 配置`dwr.xml`以支持JSF的生命周期。 ##### 4.4 DWR与Struts整合 ...
<creator id="script" class="uk.ltd.getahead.dwr.create.ScriptedCreator"/>这种类型的creator采用BSF执行脚本语言并返回bean.例如 ... import org.apache.commons.validator.EmailValidator; return ...
例如,如果你有一个名为`A`的远程Bean,其中有一个`A.blah(B)`的方法,你需要为`A`创建一个`created`,并为`B`创建一个`converted`。 在`<allow>`部分,你需要明确指定哪些类可以被创建(`create`元素)和转换(`...
#### 三、转换器(Converters) DWR预定义了一系列转换器,这些转换器用于处理不同类型的数据转换。例如: - `NullConverter`:处理null值。 - `PrimitiveConverter`:处理基本数据类型,如int、double等。 - `...
- **与Spring的整合**:通过`SpringCreator`,DWR可以无缝访问Spring管理的bean,简化了对象创建的过程。 - **与JSF的整合**:利用`JSFCreator`和`ServletFilter`,DWR能够在JSF环境中提供远程调用能力,增强了JSF...
#### The Converters:数据类型转换器 DWR默认支持将Java的基本类型(如`int`, `double`, `boolean`)及其封装类、`String`、`Date`及SQL日期类转换为JavaScript相应的类型。同时,DWR还提供了默认的转换规则,例如...
对于学习Ajax的用户来说,理解并掌握`dwr.xml`的配置至关重要,因为它直接影响到Ajax应用的性能和安全性。 在`dwr.xml`中,主要包含以下几个关键部分: 1. **允许的类(Allow)** 这部分定义了哪些Java类可以被...
此外,还需要在Spring的配置文件中定义DWR相关的bean,以实现服务对象的注入。 ##### 3.2 DWR与JSF DWR与JSF的整合主要通过JSFCreator来实现,这使得DWR可以在JSF环境中工作,从而实现更丰富的客户端交互。 ##### ...
例如,如果你有一个名为`A`的bean,它有一个方法`A.blah(B)`,你需要一个`A`的创作者和一个`B`的转换器,以便在客户端可以调用`A.blah()`并传递`B`类型的参数。 2. **允许(allow)**: `allow`元素定义了DWR可以...
4. **配置DWR**:在dwr.xml配置文件中声明这些组件,并配置必要的类型转换(converters),以便于Java和JavaScript之间的数据交换。 5. **动态生成JavaScript**:DWR通过反射机制,将Java类转换为JavaScript代码,...
**表格17**: WEB-INF/dwr.xml配置文件中关于springbean的调用(必需设置) ```xml <dwr:direct object-ref="myService" scriptName="myService"> <dwr:remote-method name="doSomething" return="java.lang.String">...