【问题标题】:Is it acceptable to format output for view inside a hibernate entity?在休眠实体中格式化输出以供查看是否可以接受?
【发布时间】:2015-08-11 03:52:18
【问题描述】:

是否可以在休眠实体中为视图执行格式化?

例如,我有一个 Merchant 实体,其中包含一组 MerchantLocation 实体。集合中的每个 MerchantLocation 都包含一个 Location 对象。

假设我从数据库中检索了一个完整填充的商家列表,并且在视图中我需要显示商家列表,并且在每个商家旁边我需要显示他们的位置 ID 的逗号分隔列表。

我会将获取位置 ID 的逻辑放在哪里?在实体?控制器?在服务层创建某种视图对象?

Merchant
     |
     |--Set<MerchantLocation>
                 |-Location
                 |-Location
                 |-Location
                 |-Location etc...

如果有什么不同,我正在使用 Spring MVC。

【问题讨论】:

  • 使用 MVC 架构时,所有数据操作都进入模型,无论您使用何种框架(Spring MVC、Struts 2、JSF 或其他)。数据从模型传递到控制器,然后再传递到视图。视图将决定如何显示数据,而不是模型。
  • 那么,我应该在模型中构建一个特定于该视图的对象吗?基本上将Entity转换为视图对象?
  • 目前我只是从数据库中检索一个实体,其中有几个帮助方法,用于专门为视图格式化一些实体属性。

标签: java spring spring-mvc architecture


【解决方案1】:

我会在视图层中创建一个CommaSeparatedListHelper,并将其传递给受尊重的Location 对象列表。 CommaSeparatedListHelper 应该收到类似List&lt;Object&gt; 的内容,并使用所有传递对象的toString() 方法来构建列表。

Merchant 获取Location 对象的逻辑可以驻留在模型中。

【讨论】:

  • 我最终做了类似的事情,但我没有创建帮助程序,而是创建了一个自定义标签,将列表作为参数并将其打印出来。
猜你喜欢
  • 2022-11-18
  • 2016-02-10
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
相关资源
最近更新 更多