我自己拷贝了RequestMappingHandlerAdapter,进行了一点修改,然后想让修改后的适配器生效,就替换了mvc:annotation-driven标签,配置RequestMappingHandlerMapping的bean和自己的RequestMappingHandlerAdapter的bean,虽能正常使用,但是JSR303验证不生效了,不能验证参数的有效性。有大神知道原因么,求指点。
1条回答 默认 最新
你知我知皆知 2024-08-05 17:38关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
你可能遇到了一个问题,那就是在使用JSR 303(Java Specification Request)验证时,Spring MVC默认使用的是基于XML的验证方式。如果你试图在你的自定义处理类中使用JSR 303验证,那么你需要确保你在处理方法上正确地注入了
@ControllerAdvice或者@ResponseBody注解来启用JSR 303验证。首先,请检查你的自定义处理器是否正确地实现了
javax.servlet.http.HttpServletRequest接口,并且返回了一个包含请求数据的HttpServletRequest对象。例如:public class CustomController { @GetMapping("/my-resource") public String myAction(HttpServletRequest request) throws ServletException, IOException { // 这里应该有一个方法来解析请求参数并返回一个响应。 return "result"; } }然后,在你的控制器处理器类中,你可以这样注入
HttpServletRequest对象到处理器上:@Controller @RequestMapping(value = "/my-resource", method = RequestMethod.GET) public class CustomController { private HttpServletRequest request; @Autowired public void setRequest(HttpServletRequest request) { this.request = request; } @GetMapping("/my-resource") public String myAction(HttpServletRequest request) throws ServletException, IOException { // 使用request来解析请求参数... return "result"; } }现在你应该能看到你的JSR 303验证工作正常运行了。
解决 无用评论 打赏 举报