Я заметил, что этот контроллер теперь устарел в последнем spring и задавался вопросом, что такое альтернативный контроллер?
Spring SimpleFormController в 3.0
Ответ 1
В Spring 3.0 вы должны использовать простые классы, аннотированные @Controller
. Такой контроллер может обрабатывать несколько запросов. Каждый запрос обрабатывается по собственному методу. Эти методы аннотируются @RequestMapping
.
Одна вещь, которую вам нужно переосмыслить, это тот факт, что старая школа SimpleFormController
обрабатывает множество разных запросов (по крайней мере: один для получения формы и второй для отправки формы). Вы должны справиться с этим сейчас вручную. Но поверьте мне, это проще.
Например, этот контроллер в стиле REST будет обрабатывать два запроса:
- /book - POST: создать книгу
- /book/form - GET: получить форму для создания
Код Java:
@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
}
}
Ответ 2
Аннотированные POJO могут выступать в качестве контроллеров; см. @Controller
.
Ответ 3
В Spring 3.0 ваши контроллеры больше не должны наследовать базовый класс. Стандартный способ заключается в использовании аннотированных контроллеров.