【问题标题】:Spring MVC passing model as dto to form?Spring MVC 传递模型作为 dto 来形成?
【发布时间】:2017-06-08 18:48:14
【问题描述】:

我有关于将我的实体模型传递给控制器​​,然后在视图中形成的问题,用户可以在其中填充必要的数据。

所以现在是这样的:

控制器

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

查看

Form thing to populate values 

问题是: 出于安全目的,我不想传递实体本身,而是传递 DTO。 因为 DTO 在没有设置器的情况下必须是不可变的,所以我将如何设置这些必填字段? 我需要制作像 POJO 这样的东西来传递数据吗?然后在填充数据后,使用汇编器将 POJO 转换为实体并将其保存在我的数据库中? 还是有其他方法可以做到这一点?

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

【问题讨论】:

  • 你能用一个示例 DTO 来澄清你的问题吗?
  • 我不认为它会是 DTO,因为 DTO 是不可变的,但没关系。示例 ObjectDTO 需要有 6 个字段:2 个枚举、1 个长整数、1 个浮点数、2 个字符串。我希望用户应该为我填充这些数据。

标签: java spring design-patterns model-view-controller thymeleaf


【解决方案1】:

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

【讨论】:

  • 我知道春天的事情只是询问设计。所以你建议我为此目的使用带有 setter 和 getter 的 POJO?
  • 是的,使用 POJO 在您的@Controller 组件中捕获数据,并且仅在您的@Repository 组件中使用@Entity
猜你喜欢
  • 2016-01-01
  • 2015-10-02
  • 1970-01-01
  • 2012-03-18
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多