Spring注解及作用


 

一:

spring mvc中的@PathVariable是用來獲得請求url中的動態參數的

@PathVariable用於方法中的參數,表示方法參數綁定到地址URL的模板:

  1. @Controller  
  2. public class TestController {  
  3.      @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)  
  4.      public String getLogin(@PathVariable("userId") String userId,  
  5.          @PathVariable("roleId") String roleId){  
  6.          System.out.println("User Id : " + userId);  
  7.          System.out.println("Role Id : " + roleId);  
  8.          return "hello";  
  9.      }  
  10.      @RequestMapping(value="/product/{productId}",method = RequestMethod.GET)  
  11.      public String getProduct(@PathVariable("productId") String productId){  
  12.            System.out.println("Product Id : " + productId);  
  13.            return "hello";
  14.      }  

 

   二:

   在Spring MVC里,@ModelAttribute通常使用在Controller方法的參數注解中,用於解釋model entity,但同時,也可以放在方法注解里。

 

    如果把@ModelAttribute放在方法的注解上時,代表的是:該Controller的所有方法在調用前,先執行此@ModelAttribute方法

 

     /**

     * 登錄提交數據處理
     * @Title: login
              */
    @RequestMapping(value="sys/loginIn" ,method = RequestMethod.POST)
    public @ResponseBody DataJSON login(@ModelAttribute User user,
    HttpServletResponse response,
    HttpServletRequest request,
    String autoLogin) throws IOException{

    try{


  //進行公共驗證
   DataJSON dataJSON = UserUtil.userLoginVerifyPC(user);

   

  三:

    @RequestBody

作用: 

      i) 該注解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然后把相應的數據綁定到要返回的對象上;

      ii) 再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。

使用時機:

  GET、POST方式提時, 根據request header Content-Type的值來判斷:

  •     application/x-www-form-urlencoded, 可選(即非必須,因為這種情況的數據@RequestParam, @ModelAttribute也可以處理,當然@RequestBody也能處理);
  •     multipart/form-data, 不能處理(即使用@RequestBody不能處理這種格式的數據);
  •     其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的數據,必須使用@RequestBody來處理);

 

@ResponseBody

 

作用: 

      該注解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response對象的body數據區。

使用時機:

      返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;

 

  四:

RequestMapping是一個用來處理請求地址映射的注解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。
@RequestMapping(value = "/aaa")//類級別,可以沒有
public class myController {
    @RequestMapping(value = "/bbb")//方法級別,必須有
    public String getMyName() {
        return "myReturn";
    }
}
對應的action就是:<form action="aaa/bbb">
返回頁面就是myReturn.jsp

五:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM