posts - 0, comments - 0, trackbacks - 0, articles - 67
          DWR提供的注解類型 —@RemoteProxy、@RemoteMethod、@DataTransferObject和...
          經(jīng)常用到的注解主要有:@RemoteProxy、@RemoteMethod、@DataTransferObject和@RemoteProperty。

          1. @RemoteProxy和@RemoteMethod
          @RemoteMethod對應于原來dwr.xml文件中的create標簽,用于創(chuàng)建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>
          關于具體每個注釋使用的方法已經(jīng)所包含的參數(shù)可以參考Java Doc。使用DWR2.0的注解極大的簡化了原來dwr.xml的配置,非常的方便。

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 永仁县| 金川县| 汉源县| 曲靖市| 龙南县| 康定县| 彩票| 广元市| 图片| 哈巴河县| 临桂县| 广州市| 凭祥市| 凌云县| 蕲春县| 玉山县| 纳雍县| 介休市| 延长县| 永德县| 莱西市| 镇江市| 康乐县| 扶绥县| 勃利县| 肇庆市| 棋牌| 宿州市| 景洪市| 克东县| 武威市| 清镇市| 页游| 临江市| 通城县| 墨竹工卡县| 金华市| 嘉荫县| 友谊县| 锡林郭勒盟| 桐城市|