REST風格以及SpringMVC的引數傳遞
一.REST風格的簡單介紹
REST的含義:representational state transfer(表象性狀態轉變),表述性狀態轉移是一組架構約束條件和原則。
REST風格是一種把所有事物都定義為資源的思想,是一種特殊的web服務的架構風格。
資源識別符號就是URI(Uniform Resource Identifier),REST通過定義不同的URL對所有的資源進行唯一標識。
REST架構的基本原則
網路上的所有事物都被抽象為資源
每個資源都有一個唯一的資源識別符號
同一個資源具有多種表現形式(xml,json等)
對資源的各種操作不會改變資源識別符號
所有的操作都是無狀態的
符合REST原則的架構方式即可稱為RESTful
REST延伸出來RESTful,RESTful含義為REST式的,指的是嚴格遵守REST風格的東西,例如Restful web service。
二.SpringMVC的引數傳遞
註解方式:@requestMapping,有value屬性(一個引數時預設)指定url路徑解析。
@Controller
@RequestMapping("/xxx")
public class xxxController {}
spingmvc用註解@Controller的方式宣告控制器,用@RequestMapping(“/xxx”)註解宣告改控制器攔截的url型別。
不同的請求會有不同的作用,不同的請求需要傳遞不同的引數,SpringMVC提供了4種獲取引數的方式。
1、@RequestParam
用@RequestParam(“partyId”)的方式繫結引數值。
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("partyId") int partyId, Model model) {
2、@PathVariable
當使用@RequestMapping URI template 樣式對映時, 即 Url/{partyId}, 這時的paramId可通過 @Pathvariable註解繫結它傳過來的值到方法的引數上。
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@PathVariable(value = "partyId") int partyId, Model model) {
3、 @RequestHeader
通過@RequestHeader註解把xxxId繫結到partyId上。
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestHeader("xxxId") int partyId, Model model) {
4、@ModelAttribute
該註解有兩個用法,一個是用於方法上,一個是用於引數上;
用於方法上時: 通常用來在處理@RequestMapping之前,為請求繫結需要從後臺查詢的model;
@ModelAttribute
public Account create(@RequestParam String number) {
用於引數上時: 用來通過名稱對應,把相應名稱的值繫結到註解的引數bean上;要繫結的值來源於:
1) @SessionAttributes 啟用的attribute 物件上;
2) @ModelAttribute 用於方法上時指定的model物件;
3) 上述兩種情況都沒有時,new一個需要繫結的bean物件,然後把request中按名稱對應的方式把值繫結到bean中。
@RequestMapping(value = "/update", method = RequestMethod.POST)
public Map<String, Object> updateParty(@Valid @ModelAttribute("Meeting") Meeting meeting,
BindingResult result) {