什么用于3层struts 2架构中的模型类?

时间:2012-02-25 10:02:20

标签: hibernate model-view-controller struts2 3-tier

我不确定使用struts 2作为我的MVC在这个3层体系结构中用于模型的类。

使用案例:使用给定名称检索目的地(城市)。

架构:Struts 2 MVC (Action) -> Service -> DestinationDAO

Struts 2:View <---> Action(此操作调用服务层)

DestinationDAO使用hibernate并具有函数getDestination(String name)以从数据库中检索目标。

我的问题是:action类需要有一个属性,我可以用它来显示jsp的目标信息。我应该使用我的目的地POJO(我使用的是休眠)还是应该是一个不同的对象?

我很感激有关此主题的任何建议/链接。

1 个答案:

答案 0 :(得分:1)

虽然你可以使用你的目的地POJO作为你的视图的DO,但我不会推荐这种方法,有时候它会产生难以调试的不良行为。其中一个用例是自动触发Hibernate在模型(POJO)中进行某些更改时查询。

创建一组DTO,其中包含呈现视图所需的属性,并将这些DTO用作MVC的模型对象(Struts2)。 在调用服务层时,您可以将值从DTO复制到POJO,这将使层更加分离并且易于更改。