【问题标题】:Good Pratice - Spring validation - frontend vs. backend良好实践 - Spring 验证 - 前端与后端
【发布时间】:2023-03-21 02:18:01
【问题描述】:

我正在使用 Bean Validation (JSR-303) 开发一个 Spring Web 应用程序 (Spring MVC 4)。但是在某些情况下,我需要在前端(百里香)上进行不同的验证,例如我需要建立一个注册表来保存用户的信息,为此,它是必要的字段,如“emailConfirmation”、“passwordConfirmation”。这种字段我不需要保存在我的数据库中,所以它们是@Transient,但也有@NotNull,因为我需要验证表单。

当我需要对这个域做其他事情并保存它时,Bean Validation 会阻止我,因为它们是 @NotNull 或 @NotEmpty 字段。

我的问题是,在这种情况下我该怎么办?

我已经想到了什么:

  • 对此域进行自定义验证,并删除@NotNull, 来自这些字段的 @NotEmpty 注释。
  • 创建不同的域 只是在我的前端使用它,并在验证后,将其复制到 实体域。

谢谢, 亚历山大。

【问题讨论】:

  • 我什至不会将它们发送到服务器并让客户端检查它们。

标签: java spring validation spring-mvc


【解决方案1】:

第二个选项 - 创建一个不同的域只是为了在我的前端使用它,并在验证后将其复制到实体域对我有好处。

最好将 DTO(数据传输对象)和实体分开。将验证添加到 DTO 以检查发送的数据是否正确。永远不要相信客户验证。这可能是黑客或客户端上的错误脚本或任何其他原因,您需要确保您尝试在服务器上处理的数据是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2017-07-04
    相关资源
    最近更新 更多