2011-01-19 41 views
22

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

+0

记住,诡计过时的东西仍然工作在春季3,春节家伙睦h比JavaSE人员更积极地消除已弃用的API,即他们实际上将删除它们。 – skaffman 2011-01-19 11:01:03

+0

不再支持Yup`SimpleFormController`(使用`4.0.4.RELEASE`尝试)。 – 2014-07-26 19:12:09

回答

27

在Spring 3.0中,您应该使用由@Controller注释的简单类。这种控制器可以处理多个请求。每个请求都由它自己的方法处理。这些方法由@RequestMapping注释。

你需要重新思考的一件事是,一所老学校SimpleFormController处理了很多不同的请求(至少:一个是获取表单,另一个是提交表单)。你必须现在手动处理。但相信我更容易。

例如该控制器在REST风格,将处理两个请求:

  • /书 - POST:创建一本书
  • /电子书/形式 - 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 
    } 
} 
6

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

+0

grr,你是第一个:-) – 2011-01-19 10:43:15

+0

为什么在投票结束后的一年半内,这个投票被拒绝了?其他答案也被否决了吗? – duffymo 2012-05-29 21:42:11

2

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

相关问题