DWR提供的注解类型 :@RemoteProxy、@RemoteMethod、@DataTransferObject和@RemoteProperty

本文详细介绍了DWR中常用的注解类型,包括@RemoteProxy、@RemoteMethod、@DataTransferObject和@RemoteProperty等,并提供了具体的使用示例,有助于更好地理解和配置DWR。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

DWR提供的注解类型 —@RemoteProxy、@RemoteMethod、@DataTransferObject和...
经常用到的注解主要有:@RemoteProxy、@RemoteMethod、@DataTransferObject和@RemoteProperty。 

1. @RemoteProxy和@RemoteMethod 
@RemoteMethod对应于原来dwr.xml文件中的create标签,用于创建DWR所提供的远程方法;而@RemoteMethod对应于create标签中的 <include method=”"/>,用来指定所要暴露的方法名称。我们举例来说明: 

@RemoteProxy(name="bankFunctions") 
public class Bank { 

    @RemoteMethod 
    public void buy() { 
        // ... 
    } 

从上面可以看出,@RemoteProxy表示这个类将用于远程方法,而使用@RemoteMethod指定所要暴露的方法,没有使用@RemoteMethod的方法将不会显示在客户端。 
上面的注释使用dwr.xml表示如下: 

<!DOCTYPE dwr PUBLIC 
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" 
    "http://getahead.ltd.uk/dwr/dwr20.dtd"> 
<dwr> 
    <allow> 
        <create creator="new" javascript="bankFunctions"> 
            <include method="buy" /> 
        </create> 
    </allow> 
</dwr> 
如果使用Spring中的DAO活逻辑层则需要进行如下的设置: 

// BookDao 
@RemoteProxy(creator = SpringCreator.class, 
    creatorParams = @Param(name = "beanName", value = "bookDao"), 
    name="bookFunctions") 
public class BookDao { 

    @RemoteMethod 
    public void addBook(Book book) { 
        // ... 
    } 

通过指定@RemoteProxy中的creator类型为SpringCreator,然后在creatorParams指定对应的beanName名称。对应的dwr.xml文件如下: 

<!DOCTYPE dwr PUBLIC 
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" 
    "http://getahead.ltd.uk/dwr/dwr20.dtd"> 
<dwr> 
    <allow> 
        <create creator="spring" javascript="bookFunctions"> 
            <param name="beanName" value="bookDao" /> 
            <include method="addBook" /> 
        </create> 
    </allow> 
</dwr> 
2. @DataTransferObject和@RemoteProperty 
@DataTransferObject对应于原来dwr.xml文件中的convert标签,用于转换Java对象;@RemoteProperty则对应于convert标签中的 <param name=”include” value=”" />。 

举例说明一下: 

@DataTransferObject 
public class Book { 
    @RemoteProperty 
    private int id; 

    @RemoteProperty 
    private String name; 

    public Book() { 
    } 

    public int getId() { 
        return id; 
    } 

    public void setId(int id) { 
        this.id = id; 
    } 

    public String getName() { 
        return name; 
    } 

    public void setName(String name) { 
        this.name = name; 
    } 

@RemoteProperty可以放在JavaBean中的私有变量上面,也可以放在getXXX方法上面。另外如果想将JavaBean中所有的属性都暴露出来的话,不需要在任何属性上面添加@RemoteProperty注释就可以了。 

上面的注释对应的dwr.xml文件如下: 

<!DOCTYPE dwr PUBLIC 
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" 
    "http://getahead.ltd.uk/dwr/dwr20.dtd"> 
<dwr> 
    <allow> 
        <convert converter="bean" 
            match="com.javatang.domain.Book"> 
            <param name="include" value="id, name" /> 
        </convert> 
        <!-- 或者用下面的方式也可以 
        <convert converter="bean" match="com.javatang.domain.Book" /> 
        --> 
    </allow> 
</dwr> 
关于具体每个注释使用的方法已经所包含的参数可以参考Java Doc。使用DWR2.0的注解极大的简化了原来dwr.xml的配置,非常的方便。 

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值