spring mvc 常用前后台數據交互的注解


關於spring mvc前后台交互的一些注解

 

Url模板

在請求路徑中添加變量,使用{}。通過@pathVariable注解在方法參數中,獲得url中的變量值。

@pathVariable(“url中的變量名”) 參數。

 

 

 

 

適用於Restful風格架構,

 

注入bean

當在類中需要引用另一個類對象的時候,需要注入。

@Resource@Autowired可以實現注入。

 

@Autowired默認是根據bytpye類型注入對象。

@Resource默認是根據byName注入對象。

 

Autowired也可以實現byName方式注入對象。搭配@Qualifier("對象名")

 

 

 

@Resource也可以實現byType方式注入對象。

@Resourcetype=”對象名”)即可根據bytype方式注入。

 

 

 

 

 

建議統一使用@Autowired方式,根據bytype方式注入。

@RequestMapping

 標記的處理器方法支持的方法參數和返回類型

主要用來定義請求路徑。

高級用法:

 

 

 

 

 

 

 

@RequestHeader@CookieValue

 

這兩個注解可以講httprequest的頭信息和cookie信息綁定到處理器的參數上。

當需要獲取請求頭或者cookie信息的時候可以使用。

示例:

 

 

 

@RequestParam,

@RequestParam

相當於 requestGetparameter()方法。該注解直接將前台傳過來的參數,綁定到對應的參數上,供方法體使用。后面跟的參數名稱需要和前台頁面中的name名稱一致。

@requestBody@respondBody

當前台頁面傳入的數據時一個完整的表單,並屬於某個類對象的屬性。使用 @RequestBody respondBody注解,自動將前台傳入的json字符串轉換成對應的類對象。

@RequestBody只能接收POST請求,get是不行的,

應用場景。例如,一個檢索頁面,對主表進行查詢,查詢條件為表中的各個字段。需要將查詢條件傳到后台。直接使用@requestBody將前台的json數據轉換成實體對象。方便查詢。 同時,在方法體上添加respondBody后,直接返回類對象。Spring會自動將這個類對象轉換成json格式,供前台使用。

 

 

@SessionAttributes, @ModelAttribute

@SessionAttributes:

 

該注解用來綁定HttpSession中的attribute對象的值,便於在方法中的參數里使用。

 

 

 

@ModelAttribute

用到方法上@ModelAttribute的示例代碼:

 

 

 

這種方式實際的效果就是在調用@RequestMapping的方法之前,為request對象的modelput(“account”, Account)。

 

用在參數上的@ModelAttribute示例代碼:

 

 

首先查詢 @SessionAttributes有無綁定的Pet對象,若沒有則查詢@ModelAttribute方法層面上是否綁定了Pet對象,若沒有則將URI template中的值按對應的名稱綁定到Pet對象的各屬性上。

 

后台接收數據:

接收前台數據,可以根據不同類型數據,使用不同注解。

 

添加控制器注解:@controller

添加映射地址:@requestmapping(“/類名去掉controller”)方便定位使用控制器,可以省略,

在控制器方法中:

方法上添加映射路徑的時候;直接添加@requestmapping注解,框架默認使用方法名作為路徑。簡潔方便,使用這種方法,需要在攔截器中需要配置。把靜態資源過濾掉。否則前台頁面無法訪問靜態資源。

 

示例:請求路徑為:../login/login

@controller

@requestMapping(/login)//可省略,省略后請求路徑為類名去掉后面的 controller,所以還是/login

Public class loginController{

@RequestMapping(path=/loginmethod = RequestMethod.post)

Public string login(string username string password  Model model){

......

//model參數必須放在最后.

//前台傳入參數少的時候可以直接放到方法上。

//model用來向前台發送數據。

 }

 

 

 

前台發送多個參數的時候,特定情況下可以使用@requestBody注解

 

@RequestMapping()

Public string loginOut(Request requesthttpservletResponse response ){

String name = request.getParameter(name)

String age = request.getParameter(age)

 

}

 

}

 

 

 

 

后台發送數據:

1modelAndView 方法:

2modelMap方法

3map方法

 

其實三種方法本質差別不大,只是表現形式不同。

建議使用mdelMap方法。在處理器方法中加上modelMap model

使用model.addAttribute("uname", name)方法,springmvc就可以自動將數據發送到前台。不用return

modelAndView 返回的就是一個視圖。

 

前台發送數據,

略:

建議統一使用ajax方式。Datatype使用json格式。

 

Ajax{

Url:login/login,

Data{},

Datatype:json,

Successfunction(){}

 

}

 


免責聲明!

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



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