3.0中的Spring SimpleFormController
问题内容:
我注意到该控制器在最近的春天已经过时,并且想知道替代控制器是什么吗?
问题答案:
在Spring
3.0中,您应该使用带有注释的简单类@Controller
。这样的控制器可以处理多个请求。每个请求由其自己的方法处理。这些方法由注释@RequestMapping
。
您需要重新考虑的一件事是,一所古老的学校SimpleFormController
处理许多不同的请求(至少:一个要获取表格,第二个要提交表格)。您现在必须手动处理。但是相信我,这会更容易。
例如,此REST风格的Controller将处理两个请求:
- / 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
}
}