2015-04-20 102 views
0

我學習Spring MVC和春天遇到這些methos contrller MVC 3.1可選參數

ControllerClass(){ 
    @RequestMapping(....) 
    public String show(Model uiModel) { 

    return "....."; 
} 

@RequestMapping(value = "/{id}", params = "form", method = RequestMethod.POST) 
public String update(@Valid Contact contact, BindingResult bindingResult, Model uiModel, 
     HttpServletRequest httpServletRequest, RedirectAttributes redirectAttributes, Locale locale, 
     @RequestParam(value="file", required=false) Part file) { 

    if (bindingResult.hasErrors()) { 
      ........... 
     return "....."; 
    } 

參數,如BindingResult,型號, 的HttpServletRequest,RedirectAttributes,語言環境, @RequestParam(值= 「file」,required = false)部分是可選的,但我想知道哪裏可以找到這些可選參數,以及在哪種情況下它可以出現在方法中。

+1

這很簡單:你閱讀文檔,他們都被描述:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-methods。 –

回答

0

參數:

  • BindingResult - 想象一下你有一個註冊形式,你會預先驗證用戶的輸入,那麼你可以使用BindingResult
  • Model - 用戶註冊後,他想編輯自己的個人資料,他會去編輯網站,在這個網站,你會顯示用戶的數據。在這裏您可以搜索用戶並將用戶對象添加到模型中,並在模板中可以從model - attribute中讀取值。
  • HttpServletRequest提供請求信息。
  • @RequestParam(value="file", required=false)從春:

訪問特定的Servlet請求參數標註的參數。將參數值轉換爲聲明的方法參數類型

想象一下,您有一張用戶表,並且您將編輯其中一個表,您可以選擇一個條目並在那裏發送userId作爲requestparam。

還有一個類似的屬性,它的主要區別是@PathVariable@PathVariable是強制性的。 @RequestParam是可選的,因爲它存在「後備/默認值」。 的@PathVariable是從URL的一部分:

@RequestMapping(value = "/{login}/edit", method = RequestMethod.GET) 
    public ModelAndView editUserByLogin(@PathVariable("login") final String login, final Principal principal) {} 

我沒有使用其他兩個呢。