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