【问题标题】:Spring boot: how to validate 2 optional date parameters are provided as soon as one is provided?Spring Boot:如何验证是否提供了 2 个可选日期参数?
【发布时间】:2021-12-13 17:53:23
【问题描述】:

从 Spring Boot 控制器,我想知道要遵循什么模式来验证 2 个可选日期参数一旦提供就不能为空。换句话说,它们可以为 null 或两者都已填充

public ResponseEntity<CardResponse> getCards(
            @RequestParam(required = false) String orderReference,
            @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime orderPlacementDateStart,
            @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime orderPlacementDateEnd,
            @PageableDefault(page = DEFAULT_PAGE_NUMBER, size = DEFAULT_PAGE_SIZE) Pageable pageRequest) {

}

我看到了一些类级别的约束,但我不确定是否可以将其应用于 2 个不同的参数?

请告诉我在这种情况下推荐什么?

谢谢

【问题讨论】:

    标签: spring-boot controller


    【解决方案1】:

    我正在回答,因为我无法发表评论。我建议将所有这些参数组合成一个 POJO 并使用 bean 验证来检查请求参数的有效性。要同时验证两个字段,您可以尝试嵌套对象。请参阅this blog post 的示例。这将提供一种更易于维护和可读性的课程粒度方法。

    【讨论】:

    猜你喜欢
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多