Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring中将数据从控制器传递到视图的正确方法_Java_Spring_Spring Mvc_Spring Data Jpa_Spring Data - Fatal编程技术网

Java 在spring中将数据从控制器传递到视图的正确方法

Java 在spring中将数据从控制器传递到视图的正确方法,java,spring,spring-mvc,spring-data-jpa,spring-data,Java,Spring,Spring Mvc,Spring Data Jpa,Spring Data,我有两个实体 public class FooEntity1 { private Integer id; private Collection<FooEntity2> entities; //gettrs, setters } public class FooEntity2 { private Integer id; private String msg; private String name; //gettrs, setters }

我有两个实体

public class FooEntity1 {
   private Integer id;
   private Collection<FooEntity2> entities;
   //gettrs, setters
}

public class FooEntity2 {
   private Integer id;
   private String msg;
   private String name;
   //gettrs, setters
}
公共类FooEntity1{
私有整数id;
私人收藏实体;
//能手,二传手
}
公共类食品2{
私有整数id;
私有字符串msg;
私有字符串名称;
//能手,二传手
}
在控制器中,我有一个FooEntity1类的对象“foo”,它在集合“entities”中有几个对象

在JSP文件中,我想做如下操作

<c:forEach items="${foo.entities}" var="entity">
  ${entity.id} - ${entity.msg} - ${entity.name}
</c:forEach>

${entity.id}-${entity.msg}-${entity.name}
我知道将实体对象传递给jsp文件是个坏主意,所以我的问题是:使用视图中实体的数据的正确方法是什么?我有两个想法:

  • 将实体中的数据放入地图并将其传递给视图
  • 创建FooEntity1Dto和FooEntity2Dto类以将数据传递给视图

  • 我应该怎么做?

    第二个想法更好,即为视图逻辑创建Dto

    您是对的,将实体传递给JSP是一个坏主意


    它违反了单一责任。实体是持久化的对象;但是,对于每个视图,可能有不同的视图逻辑,并且需要不同的Dto。如果重用实体,可能会在开始时节省时间,但您会发现实体将来会与大量临时getter混合,这使得类很难维护。

    将实体传递给视图不是一个坏主意。只需传递它们,并了解访问实体的属性和关联时会发生什么。谢谢您的回答。我发现了这个问题,Thomas坚持认为,对于每种类型的对象(FooEntity、Foo、FooDto),最好有三个类。我看到在大项目(一些团队)中,这是个好主意,但我想知道在小项目中(贡献者<5人)这是否“必要”。你觉得怎么样?@jker我确信Foo类是否能在web应用程序中工作。但他的观点与Martin Fowler的这篇文章类似,这篇文章讨论的是这些实体bean,而不是behaviors@jker打字错误:不确定,:)