2011-01-19 44 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

相關問題