我对将实体模型传递给 Controller 然后在 View 上形成表单有疑问,用户可以在其中填充必要的数据。
所以现在就是这样:
Controller
User user = new UserModel();
model.add("user", user);
查看
Form thing to populate values
问题是: 出于安全目的,我不想传递实体本身,而是传递 DTO。 因为 DTO 在没有 setter 的情况下必须是不可变的,那么我将如何在 View 上设置这些必填字段? 我需要制作类似 POJO 的东西来传递数据?然后在填充数据后,用汇编器将POJO转换为实体并将其保存在我的数据库中? 或者还有其他方法可以做到这一点?
编辑。我在 View 端使用 Thymeleaf。
最佳答案
您需要创建一个 Form 对象,它是一个带有 setter 和 getter 的简单 pojo,用于捕获 Form 数据。要强制执行诸如 @NotNull
之类的验证规则,请查看 javax.validation.constraints
。您应该有一个 @Service
组件,该组件必须是 @Controller
中的 @Autowired
,才能将表单数据填充到一个或多个 @实体
并调用@Repository
组件(该组件必须是@Service
中的@Autowired
)来进行数据库操作。
关于java - Spring MVC 将模型作为 dto 传递给表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44443430/