SmartGWT 里动态DataSource的实现思路

这个思路其实是为了解决title 中文问题的时候发现的。当时想着,实在不行我就自己做

一个DataSource的定义。SmartGWT 里,DataSource就是它的元数据核心。

这里,DataSource实际上有两个,

其一是客户端的 com.smartgwt.client.data.DataSource,这部分是开源的,可以自己随意创建。

另一个是服务器端的 com.isomorphic.datasource.DataSource, 这个是SmartGwtEE 里面的

内容,非开源的,而且只能在Server端使用,不能在客户端使用。

 

而我想做的动态DataSource,指的是在客户端定义一个DataSource,这里都可以用java类来描述

各个Field,包括类型什么的。而在服务端,根据客户端定义的DataSource自动生成一个服务端的

DataSource,这样就可以根据需要进行灵活的定义,而且所有的定义都通过java代码来进行,又可以

进行编译期检查,还可以绕过中文乱码问题。

 

当然,现在中文乱码问题解决了,这个需求就显得不那么迫切。把思路记录一下,以后有需要的时候再

来用这个思路实现动态的DataSource。

 

1. 在server.properties里面,定义缺省的 datasource repo:

datasources.repo.default: org.simon.xxx.server.MyDSRepo

 

2. MyDSRepo 继承自FileSystemDSRepo,这个实际上是SmartGWT 缺省的DSRepo

 

3. 在public DataSource loadDS( String dsName) 方法当中,判断是不是动态的DataSource ,

如果是,那么根据客户端的DataSource Class是否有变化,来决定是否生成一个新的 ds.xml文件,

然后还交给 super来装载。

 

如何判断客户端的DataSource Class是否有变化,是个问题。当然也可以不生成ds.xml文件,但是这样

就不能利用 DSRepo的cache机制了。具体的实现,等需要时再说,目前没碰到这种需求,但是不得不说,

SmartGwtEE还是为扩展留下了各种机制的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值