我注意到这个 Controller 在最近的 Spring 已经被弃用了,我想知道替代 Controller 是什么?
最佳答案
在 Spring 3.0 中,您应该使用由 @Controller
注释的简单类。这样的 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
}
}
关于java - 3.0 中的 Spring SimpleFormController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734259/