Spring MVC 参数校验:在对象转换前验证参数格式
在Spring MVC中,可以使用Validator接口来校验参数的格式是否正确。具体步骤如下:\n\n1. 创建一个校验器类,实现Validator接口,并重写validate方法。在validate方法中,对参数进行格式校验,如果格式不正确,则使用Errors对象添加错误信息。\njava\npublic class MyValidator implements Validator {\n \n @Override\n public boolean supports(Class<?> clazz) {\n return MyObject.class.equals(clazz);\n }\n \n @Override\n public void validate(Object target, Errors errors) {\n MyObject myObject = (MyObject) target;\n \n // 校验参数格式\n if (!isValidFormat(myObject.getParam())) {\n errors.rejectValue("param", "param.invalid", "参数格式不正确");\n }\n }\n \n private boolean isValidFormat(String param) {\n // 校验逻辑\n ...\n }\n}\n\n\n2. 在Controller方法中,使用@InitBinder注解配置参数校验器。\njava\n@Controller\npublic class MyController {\n \n @InitBinder\n protected void initBinder(WebDataBinder binder) {\n binder.addValidators(new MyValidator());\n }\n \n @RequestMapping("/myMethod")\n public String myMethod(@Valid @ModelAttribute("myObject") MyObject myObject, BindingResult result) {\n if (result.hasErrors()) {\n // 参数格式不正确,返回错误信息\n return "error";\n }\n \n // 参数格式正确,继续处理\n ...\n }\n}\n\n\n3. 在Controller方法的参数上使用@Valid注解,表示对参数进行校验。同时,使用@ModelAttribute注解指定参数的名称,以便在视图中访问校验结果。\n\n这样,在参数转换成对象之前,会先进行格式校验。如果参数格式不正确,会将错误信息添加到BindingResult对象中,可以在Controller方法中进行处理。
原文地址: https://www.cveoy.top/t/topic/p0Ng 著作权归作者所有。请勿转载和采集!