我试图使用Spring Validator和@Validated注释来验证Get Request参数,但无法获取验证器来运行。我正在使用ModelAttribute来尝试让验证器在路径变量而不是请求体上运行。是否可以在Get Request Path Variable上运行验证器?使用Spring @验证注释验证获取请求路径变量
这是我的控制器类和方法
@RestController
public class ProfileController {
@RequestMapping(value = "/profile/{param}", method = RequestMethod.GET)
public IVRProfile getProfile(@Validated(ParamValidator.class) @ModelAttribute("param") String param) {
return sampleProfile();
}
@ModelAttribute("param")
public String paramAsModelAttribute(@PathVariable String param) {
return param;
}
}
并且这个校验
@Component
public class ParamValidator implements Validator
{
@Override
public boolean supports(Class<?> clazz)
{
System.out.println("Validator supports test");
return String.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors)
{
System.out.println("Validator Test");
// Validation code
}
}
击中端点时语句执行既不打印。
任何帮助,我可能会失踪或做不同的事情将不胜感激,谢谢!
嗨Oyewole。我在帖子中看到我不清楚,我的意思是验证路径变量而不是请求参数。我已经更新了该帖子以更加一致。我的问题不在于获取变量,而是在变量上运行验证程序 – BlakeM