Spring SimpleFormController 3.0

我注意到这个控制器现在已经在最近的spring被弃用了,并且想知道替代控制器是什么?

在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 } } 

带注释的POJO可以充当控制器; 看@Controller

在Spring 3.0中,您的控制器不应再inheritance自基类。 标准方法是使用带注释的控制器 。