关于jdonframework-6.2.2中ModelUtil.isModel ()疑问

10-05-02 iliuyong
先祝大家51快乐!

关于jdonframework-6.2.2一个疑问

我学习jdon的一个例子Jdonsample

模型 message 原来是继承 com.jdon.controller.model.Model的

public class Message extends Model

测试没发现问题

后来我改成 使用注解的形式

@Model

public class Message

当编辑界面 发现没有取出模型的值

经调试发现原因好像是:

EditeViewPageUtil的方法getModelForEdit中用

if (ModelUtil.isModel(model)) 判断是否是 isModel

而 ModelUtil.isModel(model)返回值总是false

因为 model是 HibernateTemplate.load()返回的一个代理类。

用注解来实现的模型的hibernate代理类不能通过下面的判断:

model.getClass().isAnnotationPresent(com.jdon.annotation.Model.class)

用继承来是模型的hibernate代理类能通过下面的判断:com.jdon.controller.model.ModelIF.ModelIF.class.isAssignableFrom(model.getClass())

请教如何解决这个问题?

[该贴被iliuyong于2010-05-02 23:43修改过]

[该贴被iliuyong于2010-05-02 23:49修改过]

[该贴被iliuyong于2010-05-02 23:51修改过]

banq
2010-05-03 09:39
这是一个问题,不知你有无什么好办法?

iliuyong
2010-05-04 08:33
2010年05月03日 09:39 "banq"的内容
这是一个问题,不知你有无什么好办法? ...

提前初始化代理类,应该不好

如何让这个代理类通过 ModelUtil.isModel(model)的判断

我没有想出办法

请banq老师指教

[该贴被iliuyong于2010-05-04 19:40修改过]

iliuyong
2010-05-05 11:16
各位,都没碰上这个问题吗?还是问题太弱智啊?

banq
2010-05-05 11:43
这个问题要巧妙解决比较难,需要从代理对象追溯到原始对象类型,根据使用不同的代理机制,比如JDK的 或CGLIB做得不一样,比较棘手。

iliuyong
2010-05-05 17:17
谢谢,我先不使用使用注解。待以后有了办法再解决

猜你喜欢