【问题标题】:how to validate spring model object with different attribute requirements different method calls?如何验证具有不同属性要求不同方法调用的弹簧模型对象?
【发布时间】:2020-06-18 13:07:40
【问题描述】:

我们在 spring 控制器中使用单个模型类说

Student(id,firstname,lastname);

现在我的控制器有两种方法

  1. 在我们仅通过 id 传递 Student 对象时获取学生详细信息。(仅需要 Id)

  2. 使用所有详细信息 id、firstname、lastname 更新学生详细信息(我们使用 id 作为更新名称的参考)

在两种控制器方法中我都想使用 spring 验证器,所以我如何为两种控制器方法编写验证方法,因为我只需要 id 属性来获取学生详细信息,而在其他方法中,我希望所有三个属性都可以更新学生详细信息。

我们没有使用弹簧靴。

【问题讨论】:

  • 问题:为什么只用id传递整个对象?如果您通过 id 获取学生,只需传递 id 并返回 Student。
  • 一般来说,get 请求从来没有 Requestbody。使用 get/students/1 获取 id 为 1 的 Student
  • @armandino .. 在这里我只是举了个例子我的目的是我想用不同的方法以不同的方式验证模型对象

标签: java spring validation spring-validator


【解决方案1】:

我总是将 dtos(数据传输对象)用于客户端发送的模型,并将单独的模型用于响应。 这有很多优点。传入的 api 模型与应用程序中使用的模型分离。此外,使用 dto,您只需提供一个模型,该模型具有客户端可以发送到 api 的最少属性。为了解决您的问题,您可以单独验证它们。 我认为您不希望您的客户更新学生 ID。因此,对于您的模型,请使用具有与完整学生对象相同的属性但没有 id 字段的 dto。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多