相关疑难解决方法(0)

对RequestParam的自定义验证不适用于Spring MVC

我无法使用Spring MVC进行自定义验证。我为参数实现了自己的注释,并为其实现了自定义验证器(所有功能均在下面给出),但是验证从未发生。任何想法将不胜感激。

控制者

@Validated
@RestController
public class FooController {

    @RequestMapping(value = "/somepath",
                    method = RequestMethod.GET,
                    produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseStatus(HttpStatus.OK)
    public String get(@CustomParam @RequestParam(String fooParam) {
        return "Hello";
    }

}
Run Code Online (Sandbox Code Playgroud)

自定义请求参数

@Documented
@Constraint(validatedBy = CustomValidator.class)
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomParam {

    String message() default "Wrong!";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
Run Code Online (Sandbox Code Playgroud)

自定义验证器

@Component
public class CustomValidator implements ConstraintValidator<CustomParam, String> {

    @Override
    public void initialize(CustomParam param) {}

    @Override
    public boolean isValid(String givenParam, ConstraintValidatorContext context) {
        // some …
Run Code Online (Sandbox Code Playgroud)

java validation spring spring-mvc

5
推荐指数
1
解决办法
3530
查看次数

标签 统计

java ×1

spring ×1

spring-mvc ×1

validation ×1