该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-02-03
2种情况:
1种是 一个网页中 设计到了 多个PO 中的 属性,这时候 需要一个Form Bean 从这个PO 里面取些属性,从那个PO 取些属性。 然后在 JSP 中显示这个Form Bean 。 第二种情况是, 数据库中不需要 某个属性,比如 我JSP 中有某个投票项,的投票数,还要有 占总投票数的百分比,还有 柱状图的 高度, 这 后2个完全可以根据 投票数计算出来,没必要 在数据库中增加额外字段。这时候 需要 做些处理 一种方案是 在PO 中加属性(PO中有,而数据库中没有) 另一种是 在 PO 对应的Form Bean 中加。 小妹觉得这 2种情况是 基本 包含了PO 和 Form Bean 不同,需要转换的情况。而此种情况,我也不确定是在PO中构造还是在Form Bean构造好。 跟各位gao 人 的贴,真紧张。欢迎批评。 |
|
返回顶楼 | |
发表时间:2005-02-04
jeffrey_he 写道 robbin的例子中没有提到列表的情况啊,假如是一个用户列表的页面呢?我通过Business Bean查询得到的是一个List或Iterator呢?是否也要把其中每个元素转换为formbean来显示?
嗯,对这个问题,我也正迷惑着! |
|
返回顶楼 | |
发表时间:2005-02-20
汗,来了这么久到现在才发现这篇文章.
突然间豁然开朗. 我们用的是c#,一切给着ms走。 一直都是学着PetShop的那个Model 在PetShop中Model即是robbin说的那个po,也是那个vo,而且也是dto Model从底走到天 项目小一点感觉挺好 可是项目越大,业务间关系越复杂 那个Model里东西乱的...... robbin 写道 在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高J2EE架构整体的可维护性和可扩展性。
其实: 在.net架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高.net架构整体的可维护性和可扩展性。 |
|
返回顶楼 | |
发表时间:2005-02-20
shoopman 写道 jeffrey_he 写道 robbin的例子中没有提到列表的情况啊,假如是一个用户列表的页面呢?我通过Business Bean查询得到的是一个List或Iterator呢?是否也要把其中每个元素转换为formbean来显示?
嗯,对这个问题,我也正迷惑着! 个人认为也应该转换,在action里做一下就可以了,需要自己扩展一下beanutil |
|
返回顶楼 | |
发表时间:2005-02-21
引用 Robbin写的很好,但是我还是忍不住说两句。 引用 JSP(View) ---> ActionFormBean(Module) ---> Action(Control)
我想说说关于ActionFormBean定义为Module的问题。前一段时间在Blogdriver上有很多朋友的Blog上提到MVC的问题。没记错的话Gigix和Ozzzzz认为MVC就是表示层的东西,不涉及业务逻辑方面,认为MVC是多层架构中表示层的架构。但从网上查看一些资料MVC实际上应该是三层,而不是只在表示层(我个人也是这么认为的)。如果MVC中V表示的是表示层的,那么ActionFormBean不是M,尽管V中也有数据,但那是表示层的,PO等才是M。 所以如果使用Struts/Hibernate的时候,MVC应该是这样分割: Struts(V) -> PO/Hibernate(M) -> StrutsController(C). 个人认为,这是大多数人对 MVC 和 三层结构 的误解,三层结构 是 整个应用系统的框架(尤其是网络应用),而MVC的提出最初是针对GUI系统,目前将MVC用于Web,应该只适用于表示层。虽然它们在部件分割的概念上很相似,但是大家不应该把 MVC 和 三层结构 相混淆。 |
|
返回顶楼 | |
发表时间:2005-02-21
yhc0125 写道 shoopman 写道 jeffrey_he 写道 robbin的例子中没有提到列表的情况啊,假如是一个用户列表的页面呢?我通过Business Bean查询得到的是一个List或Iterator呢?是否也要把其中每个元素转换为formbean来显示?
嗯,对这个问题,我也正迷惑着! 个人认为也应该转换,在action里做一下就可以了,需要自己扩展一下beanutil 看来真的有不少人在迷惑这个问题,我也是,不知道有没有人已经做好扩展的beanutil了,当然,要的是效率上最高的,要是一个一个循环,那就没有什么意义了。 |
|
返回顶楼 | |
发表时间:2005-02-22
看来robbin已经是顶级高手了,不需要讨论代码层的东西了。
|
|
返回顶楼 | |
发表时间:2005-02-23
robbin说得不错。
实际项目中我用的也正是类似的思路。 不过我想补充一点,介绍一下我的经验,即在VO<-->PO之间转换的问题,一般而言要写两个转换方法,将VO转为PO,将PO转为VO。这种东西在我看来显然是体力劳动,而我的方式就是偷懒:用Reflection的方式去执行。 结果就是,基本上所有的转换都是用一个通用的类执行。而效率上,目前看来也没有明显的损失。 呵呵,供大家参考。 |
|
返回顶楼 | |
发表时间:2005-02-23
用Reflection的方式去执行。 这位仁兄 能否介绍下. |
|
返回顶楼 | |
发表时间:2005-02-28
东西是死的,人是活的—— 活人要用活死东西
用其 精华 弃其糟魄 |
|
返回顶楼 | |