首页 > 解决方案 > 在 Spring REST 控制器中验证 @RequestParam 不起作用

问题描述

我想验证我的 GET 方法的参数。我添加了tis依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>

我写了这个控制器:

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.constraints.Min;

@Validated
@RestController
public class TestController {

    @GetMapping(value = "/test")
    public String getTest(@Min(value = 3, message = "min 3")
                          @RequestParam("hz") String hz,
                          @RequestParam("hz1") String hz1) {
        return "test";
    }
}

我添加了配置:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;

@Configuration
public class Config {
    @Bean
    public MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }
}

该请求工作正常!为什么?

http://localhost:8088/test?hz=12&hz1=123

标签: springvalidationspring-restcontroller

解决方案


推荐阅读