gwt反射

GWTENT 1.0 第一个RC版本发布,从本版本开始,所有包结构及主要的接口将会稳定下来。 

  GWTENT 主要为GWT提供反射Reflection,数据绑定(DataBinding),HTML模板,检验支持(Validation)及一个处于早期的AOP实现。 

http://gwt-ent.googlecode.com/files/gwtent.1.0.0.RC1.zip

 

http://code.google.com/p/gwt-ent/

 

http://code.google.com/p/gwt-ent/wiki/UseReflection

 

 

Gwt延迟绑定介绍

Gwt的延迟绑定是一种gwt对反射机制的一种支持方案。简单的说就是在使用gwt进行代码开发的时候,可以使用接口和抽象类,而不用管它的实现,在编译后或者host模式的情况下,gwt会自己跟模块配置的信息来使用具体哪一个实现类替代代码中的接口和抽象类。

使用说明:

1. 定义接口或者抽象类,然后再定义一个实现类。

2. 在xxx.gwt.xml(模块文件中定义)替换的参数信息和具体替换的类

Xml代码 复制代码 收藏代码gwt <wbr>中的延迟绑定
  1. <replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla">
  2. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  3. <when-property-is name="user.agent" value="gecko1_8"/>
  4. </replace-with>
<replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="gecko1_8"/> </replace-with>


上面的配置是将在firefox浏览器里面使用DOMImpl该类的地方使用DOMImplMozilla这个类进行替换。其中的replace-with是指实际用到的类,when-type-is则是要替换的类,when-property-is则是一些参数信息,可以添加0到多个。另外,关于参数的配置还可以加一些逻辑的限制,如Any,

Xml代码 复制代码 收藏代码gwt <wbr>中的延迟绑定
  1. <any>
  2. <when-property-is name="user.agent" value="gecko"/>
  3. <when-property-is name="user.agent" value="gecko1_8" />
  4. </any>
<any> <when-property-is name="user.agent" value="gecko"/> <when-property-is name="user.agent" value="gecko1_8" /> </any>



3. 在代码中使用
通过GWT.create方法可以动态的获取不同的实现类,如下:
DOMImpl impl = (DOMImpl) GWT.create(DOMImpl.class);
再结合gwt的dom模块的配置信息(如下),impl对象将会根据不同的浏览器而动态采用不同的domimpl类的实现。

Xml代码 复制代码 收藏代码gwt <wbr>中的延迟绑定
  1. <module>
  2. <inherits name="com.google.gwt.core.Core"/>
  3. <inherits name="com.google.gwt.user.UserAgent"/>
  4. <replace-with class="com.google.gwt.user.client.impl.DOMImplOpera">
  5. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  6. <when-property-is name="user.agent" value="opera"/>
  7. </replace-with>
  8. <replace-with class="com.google.gwt.user.client.impl.DOMImplSafari">
  9. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  10. <when-property-is name="user.agent" value="safari"/>
  11. </replace-with>
  12. <replace-with class="com.google.gwt.user.client.impl.DOMImplIE6">
  13. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  14. <when-property-is name="user.agent" value="ie6"/>
  15. </replace-with>
  16. <replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla">
  17. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  18. <when-property-is name="user.agent" value="gecko1_8"/>
  19. </replace-with>
  20. <replace-with class="com.google.gwt.user.client.impl.DOMImplMozillaOld">
  21. <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
  22. <when-property-is name="user.agent" value="gecko"/>
  23. </replace-with>
  24. </module>
<module> <inherits name="com.google.gwt.core.Core"/> <inherits name="com.google.gwt.user.UserAgent"/> <replace-with class="com.google.gwt.user.client.impl.DOMImplOpera"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="opera"/> </replace-with> <replace-with class="com.google.gwt.user.client.impl.DOMImplSafari"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="safari"/> </replace-with> <replace-with class="com.google.gwt.user.client.impl.DOMImplIE6"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="ie6"/> </replace-with> <replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="gecko1_8"/> </replace-with> <replace-with class="com.google.gwt.user.client.impl.DOMImplMozillaOld"> <when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/> <when-property-is name="user.agent" value="gecko"/> </replace-with> </module>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值