stackoverflow.com/questions/4347284/conversionservice-in-spring

тавьте себе код, подобный этому:

@RequestMapping(value="/users", method=RequestMethod.GET)
public String list(Model model) {
    ...
}

@InitBinder("user")
public void initBinder(WebDataBinder binder) {
    binder.setDisallowedFields("password"); // Don't allow user to override the value
}

@ModelAttribute("user")
public User prepareUser(@RequestParam("username") String username){
    ...
}

@RequestMapping(value="/user/save", method=RequestMethod.POST)
public String save(@ModelAttribute("user") User user, Model model) {        
    ...
}

Я использую привязку init, чтобы избежать связывания поля, и помечаю метод (prepareUser ()) с помощью @ModelAttribute, чтобы подготовить мой объект User до его привязки. Поэтому, когда я вызываю / user / save initBinder () и prepareUser () выполняются.

Я установил «user» в @InitBinder и @ModelAttribute, чтобы Spring-MVC мог понять, что эти методы следует применять только перед выполнением метода с @ModelAttribute («user»).

Проблема состоит в том, что метод, аннотированный @ModelAttribute ("пользователь"), выполняется перед каждым сопоставленным методом этого контроллера. Например, если я вызываю / users prepare, пользователь выполняется перед методом list (). Как я могу сделать так, чтобы этот подготовитель выполнялся только перед методом save (), имеющим все методы в одном контроллере?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос