@requesMapping的可配置參數和標註的處理方法的選擇性參數

來源:互聯網
上載者:User

標籤:style   blog   class   code   java   c   

使用@requesMapping標註的處理函數包括的選擇性參數,除了HttpServletRequest, HttpServletResponse, HttpSession這些web應用中常見的參數及之前提到過的@PathVariable外,還可以包括以下可選的參數,其中大部分參數的順序沒有特殊要求的。 java.util.Locale當前請求所屬的地區設定。 java.io.InputStream或java.io.Reader用來讀取request content,相當於  request.getInputStream()或request.getReader(); java.io.OutputStream或java.io.Writer用來產生reponse content,相當於response.getOutputStream()或response.getWriter()。 java.security.Principal當前認證了的使用者 WebRequest或NativeWebRequestSpring 對request,response,session等web元素封裝後的對象 java.util.Map 或 org.springframework.ui.Model或org.springframework.ui.ModelMap用來存放domain model的map結構。 HttpEntity<?>可用來讀取http請求的header和 body內容,注意因為httpentity,@RequestBody,Reader這三種類型的參數都是通過inputstram來讀取httpbody的資料的,而inputstream流不能反覆讀取,因此這三種類型的參數不能放在一起使用。而且在沒有設定content-type或沒有設定相應的messageconverter的情況下,都會報錯。 Command 或 form objects通過spring 的databinding機制將request請求中的參數自動轉換為對應的java bean執行個體。 Errors或BindingResult對command或form objects值的校正結果。此參數必須緊跟在需校正的command或form object參數後面。因為databinding可以允許將輸入參數和多個java bean 進行綁定(也就是說我們可以把輸入request param轉換成為多個java 對象)。 SessionStatusSession的狀態。當使用@SessionAttributes來標註請求需要session中對應的值時,在處理結束時,使用SessionStatus. setComplete()來將session設定為時效。 @RequestParam將request參數和handler method參數做綁定。例如@RequestParam(value="username",defaultValue="winzip",required=false) String name表示將request中的username參數和handler method中的name參數綁定,預設值為”winzip”,request請求中可以不傳遞此參數 @RequestHeader將handler method中的參數與request header中的值綁定,例如@RequestHeader(required=false,value="User-Agent") String ua表示將header中的"User-Agent"與ua這個入參綁定。 @RequestBody將handler method中的參數與request context body中的值綁定例如@RequestBody String u表示將request body中的內容與u這個入參綁定。 @CookieValue將handler method中的參數與cookie中的值綁定例如@CookieValue(value="JSESSIONID",required=false) String jssionid @ModelAttribute將handler method中的參數與對應的類型綁定,名稱預設為類名(首字母小寫),如果ModelAttribute指定了值則以該值作為model attribute name。例如@ModelAttribute("ooxx") User u則在modelmap中建立了一個索引值為ooxx的model attribute。@ModelAttribute User u 或 User u在modelmap中建立了一個索引值為user的model attribute

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.