Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 MVC通过模型作为dto来形成?_Java_Spring_Design Patterns_Model View Controller_Thymeleaf - Fatal编程技术网

Java Spring MVC通过模型作为dto来形成?

Java Spring MVC通过模型作为dto来形成?,java,spring,design-patterns,model-view-controller,thymeleaf,Java,Spring,Design Patterns,Model View Controller,Thymeleaf,我对将实体模型传递给控制器以及之后传递给视图上的表单有疑问,用户可以在视图中填充必要的数据 所以现在是这样的: 控制器 User user = new UserModel(); model.add("user", user); 看法 问题是: 为了安全起见,我不想传递实体本身,而是传递DTO。 因为DTO必须在没有设置器的情况下是不可变的,那么我将如何在视图中设置这些必填字段? 我需要做一些类似POJO的东西来传递数据?然后在填充数据之后,使用汇编程序将POJO转换为实体并将其保存在我的数据库

我对将实体模型传递给控制器以及之后传递给视图上的表单有疑问,用户可以在视图中填充必要的数据

所以现在是这样的:

控制器

User user = new UserModel();
model.add("user", user);
看法

问题是: 为了安全起见,我不想传递实体本身,而是传递DTO。 因为DTO必须在没有设置器的情况下是不可变的,那么我将如何在视图中设置这些必填字段? 我需要做一些类似POJO的东西来传递数据?然后在填充数据之后,使用汇编程序将POJO转换为实体并将其保存在我的数据库中? 或者有其他方法可以做到这一点


编辑。我在视图端使用Thymeleaf。

您需要创建一个表单对象,它是一个带有setter和getter的简单pojo,用于捕获表单数据。要强制执行验证规则,如
@NotNull
,请查看
javax.validation.constraints
。您应该在
@Controller
中有一个
@Service
组件,该组件必须是
@Autowired
,以便将表单数据填充到一个或多个
@实体中,并调用
@Repository
组件,该组件必须是
@Service
中的
@Autowired
,以便进行数据库操作

你能用一个DTO的例子来澄清你的问题吗?我不认为是DTO,因为DTO是不可变的,但可以。示例objectd需要有6个字段:2个枚举、1个长、1个浮点、2个字符串。我希望在视图方面,用户应该为我填充这些数据。我知道spring只是询问有关设计的问题。因此,您建议我将POJO与setter和getter一起使用?是的,使用POJO在
@Controller
组件中捕获数据,并且仅在
@Repository
组件中使用
@Entity
Form thing to populate values