【问题标题】:InitBinder for Spring Rest controller for @Valid用于 @Valid 的 Spring Rest 控制器的 InitBinder
【发布时间】:2015-04-18 21:39:16
【问题描述】:

使用基于Spring @RestController 的Validator 接口的方法是创建一个validator 自定义类,实现Validator 接口。在控制器类中调用 InitBinder 来注册验证器类。然后当 REST req 到来时,该类的验证器被调用。这对我来说仍然有问题。假设我有一个 PersonValidator 类,它对 POST 进行一种验证,对 PUT 进行另一种验证。由于这两个处理程序都存在于同一个 REST 控制器类中,我如何运行不同的验证? 说在同一个休息控制器类中,我想将 PostPersonValidator 用于 POST,将 PutPersonValidator 用于 PUT。我不知道该怎么做。

【问题讨论】:

    标签: spring validation rest


    【解决方案1】:

    只要关注这篇文章:http://howtodoinjava.com/2015/02/12/spring-mvc-custom-validator-example/

    您基本上必须创建两个单独的验证器 - 正如您所说的(一个用于 POST,一个用于 PUT)。然后只需在正确的 POST/PUT 处理方法中调用它们。如果您按照链接的示例进行操作,应该非常简单。

    【讨论】:

    • 谢谢,但我怀疑这是正确的方法。在其余 API 的情况下,为什么我必须使用 ModelAndView 注释?今天我的 RestController 不需要它。如果我正在做验证,从技术上讲,@Valid 和 InitBinder 就足够了,但不是在控制器级别。我希望你现在明白我的疑问了吗?
    猜你喜欢
    • 1970-01-01
    • 2016-10-17
    • 2015-01-15
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2018-07-30
    • 2019-05-25
    • 2020-09-25
    相关资源
    最近更新 更多