Spring SimpleFormController в версии 3.0 - PullRequest
23 голосов
/ 19 января 2011

Я заметил, что этот контроллер был объявлен устаревшим последней весной, и ему было интересно, что такое альтернативный контроллер?

Ответы [ 3 ]

28 голосов
/ 19 января 2011

В Spring 3.0 вы должны использовать простые классы, помеченные @Controller.Такой контроллер может обрабатывать более одного запроса.Каждый запрос обрабатывается своим собственным методом.Эти методы помечены @RequestMapping.

. Вам необходимо переосмыслить тот факт, что старая школа SimpleFormController обрабатывает множество различных запросов (по крайней мере: один для получения формы и второйотправить форму).Вы должны справиться с этим сейчас вручную.Но поверьте мне, это проще.

Например, этот контроллер в стиле REST будет обрабатывать два запроса:

  • / book - POST: создать книгу
  • / книга / форма - GET: получить форму для создания

Java Code:

@RequestMapping("/book/**")
@Controller
public class BookController {

    @RequestMapping(value = "/book", method = RequestMethod.POST)
    public String create(
        @ModelAttribute("bookCommand") final BookCommand bookCommand) {

        Book book = createBookFromBookCommand(bookCommand);
        return "redirect:/book/" + book.getId();
    }

    @RequestMapping(value = "/book/form", method = RequestMethod.GET)
    public String createForm(final ModelMap modelMap) {
        modelMap.addAttribute("all", "what you need");
        return "book/create"; //book/create.jsp
    }
}
6 голосов
/ 19 января 2011

Аннотированные POJO могут действовать как контроллеры;см @Controller.

2 голосов
/ 19 января 2011

В Spring 3.0 ваши контроллеры больше не должны наследовать от базового класса. Стандартным способом является использование аннотированных контроллеров .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...