日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rest风格使用两个变量_REST风格,@PathVariable注解

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rest风格使用两个变量_REST风格,@PathVariable注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

REST(Representational State Transfer,表述性狀態轉移)是一種軟件風格。所謂的REST風格可以簡單理解為:使用url表示資源時,每個資源都用一個獨一無二的url來表示,并使用http方法表示操作,即準確描述服務器對資源的處理動作(get、post、put、delete),實現資源的增刪改差。舉例如下

/user/view/12  /userview.html?id=12

/user/delete/12  /userdelete.html?id=12

/user/modify/12   /usermodify.html?id=12

我們可以發現REST風格的url中最明顯的就是參數不再使用“ ?”傳遞。這種風格可讀性好,項目結構清晰,springmvc也提供對這種風格的支持。

由于url參數有時會傳遞中文,那么就會出現中文亂碼問題,所以要根據實際情況靈活處理,混搭使用。@RequestMapping(value?=?"/view/{id}",?method?=?RequestMethod.GET)

public?String?view(@PathVariable?String?id,?Model?model){

User?user?=?userService.getUserById(id);

model.addAttribute(user);

return?"userview";

}

@PathVariable在spring-web依賴下,所在包如下

對于REST風格url中的參數接受,springmvc提供了@PathVariable注解,可以將url中的{xxx}占位符參數綁定到控制器處理方法的入參中。

和?的使用相比較:

spingMvc REST的風格:

/user_show?id=120

/user/120

/user_delete?id=123

/user/123/delete

/user_updateInput?id=123

/user/123/update

/user_list

/users

/user/users

REST的風格不等于使用了REST技術

@PathVariable路徑變量參數的使用 :value="/{username}" 路徑參數一定要使用{}包裹起來;@RequestMapping(value="/{username}",method=RequestMethod.GET)public?String?show(@PathVariable?String?username,Model?model)?{model.addAttribute(users.get(username));return?"user/show";}@RequestMapping(value="/{username}",method=RequestMethod.GET,params="json")@ResponseBodypublic?User?show(@PathVariable?String?username)?{return?users.get(username);}@RequestMapping(value="/{username}/update",method=RequestMethod.GET)public?String?update(@PathVariable?String?username,Model?model)?{model.addAttribute(users.get(username));return?"user/update";}@RequestMapping(value="/{username}/update",method=RequestMethod.POST)public?String?update(@PathVariable?String?username,@Validated?User?user,BindingResult?br)?{if(br.hasErrors())?{//如果有錯誤直接跳轉到add視圖return?"user/update";}users.put(username,?user);return?"redirect:/user/users";}@RequestMapping(value="/{username}/delete",method=RequestMethod.GET)public?String?delete(@PathVariable?String?username)?{users.remove(username);return?"redirect:/user/users";}

總結

以上是生活随笔為你收集整理的rest风格使用两个变量_REST风格,@PathVariable注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。