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自基类。 标准方法是使用带注释的控制器 。