Spring SimpleFormController 3.0

时间:2011-01-19 10:38:58

标签: java spring spring-mvc

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

3 个答案:

答案 0 :(得分:28)

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

答案 1 :(得分:6)

Annotated POJOs可以充当控制者;见@Controller

答案 2 :(得分:2)

在Spring 3.0中,您的控制器不应再继承自基类。 标准方法是使用annotated controllers