2008年8月16日星期六

DWR 框架-中级dwr.xml配置

发现一个dwr教程:http://wiki.javascud.org/display/dwrcn/Home
dwr.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>

<!-- START SNIPPET: dwr -->
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

<!-- init is only needed if you are extending DWR -->
<init>
<creator id="..." class="..."/>
<converter id="..." class="..."/>
</init>
<allow>
<!>

<create javascript="listService" creator="spring">
<param name="beanName" value="listService" />
<include method="findSubindustryByParent" />
<include method="findAllCitiesByProvince" />
<include method="getIndustries" />
</create>

<!-- create标签用来配置你想要暴露给dwr在页面调用的java类,listServic即为home.dong.ListSerive.
DWR在应用启动时将ListService转化为名为 listService.js的js文件供页面调用。
而creator属性用来配置dwrj应该如何初始化该类的实力以转化成js文件,creator的值有new和spring两种(还有其他如none,scripted等,具体可参看官方文档,说的也很明白(本人暂且只使用了这两种方式)。
很显然,当cteator='new'时dwr会使用java new关键字产生该类实例,然后转化成js文件。而creator='spring'时当然就是由sping容器IOC注入该类实例。所以有下面的<prama>参数也是用配合creator的。
如creator='new'时,对应的<param name="class" value="aaa.bbb.CCC">这样dwr会知道这是一个aaa.bbb.CCC的类,会使用new来创建并转化为js文件,相应的如果creator="spring" 则对应的<param name="beanName" value="someCCC">,dwr创建js文件时就不会new了,而是有spring注入进来的。
<include> 标签很简单,只要把该类中你想要使用的方法填写到里面就行了,这样在你浏览http://localhost:8080/yourPrj/dwr/interface/myClass.js时MyClass类中所有的方法都在可以看见,但是只有你在<include>标签中配置过的那些方法可以使用,也就是没有红色的warning的。


-->

<convert match="com.bomeiti.entity.UI.Industry"
converter="bean">
<param name="include" value="id,description"></param>
</convert>

<!--

<convert>标签使用来转化类的,也就是实体类了,这里需要指明该类的全名(包括包名),<param>用来配置该类中那些属性是可见的。其他没什么难的了,

-->


</allow>

<signatures>
<![CDATA[
import java.util.Map;
import org.apache.struts2.validators.DWRValidator;

DWRValidator.doPost(String, String, Map<String, String>);
]]>
</signatures>
<!--

<signarures>中用来配置莫些具有复杂参数的方法 如listService.getIndustries(Industry ind);此时页面调用时应先组装industry 数据,然后调用


-->

</dwr>

标签:

0 条评论:

发表评论

订阅 博文评论 [Atom]

<< 主页