Spring provides the @InitBinder annotation to initialize a WebDataBinder instance for controllers. This is useful to bind
request parameters to a model object, and to plug converters and formatters into this process.
Methods annotated with @InitBinder must not have a return value, otherwise the controller containing them will throw an exception when
invoked.
This rule raises an issue when a method annotated with @InitBinder does not have a void return type
@Controller
public class MyController {
@InitBinder
public String initBinder(WebDataBinder binder) { // Non compliant, make the @InitBinder method return void
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
return "OK";
}
// ...
}
@Controller
public class MyController {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
// ...
}