rest风格使用两个变量_REST风格,@PathVariable注解
REST(Representational State Transfer,表述性狀態(tài)轉(zhuǎn)移)是一種軟件風(fēng)格。所謂的REST風(fēng)格可以簡單理解為:使用url表示資源時,每個資源都用一個獨(dú)一無二的url來表示,并使用http方法表示操作,即準(zhǔn)確描述服務(wù)器對資源的處理動作(get、post、put、delete),實現(xiàn)資源的增刪改差。舉例如下
/user/view/12 /userview.html?id=12
/user/delete/12 /userdelete.html?id=12
/user/modify/12 /usermodify.html?id=12
我們可以發(fā)現(xiàn)REST風(fēng)格的url中最明顯的就是參數(shù)不再使用“ ?”傳遞。這種風(fēng)格可讀性好,項目結(jié)構(gòu)清晰,springmvc也提供對這種風(fēng)格的支持。
由于url參數(shù)有時會傳遞中文,那么就會出現(xiàn)中文亂碼問題,所以要根據(jù)實際情況靈活處理,混搭使用。@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風(fēng)格url中的參數(shù)接受,springmvc提供了@PathVariable注解,可以將url中的{xxx}占位符參數(shù)綁定到控制器處理方法的入?yún)⒅小?/p>
和?的使用相比較:
spingMvc REST的風(fēng)格:
/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的風(fēng)格不等于使用了REST技術(shù)
@PathVariable路徑變量參數(shù)的使用 :value="/{username}" 路徑參數(shù)一定要使用{}包裹起來;@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())?{//如果有錯誤直接跳轉(zhuǎn)到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";}
總結(jié)
以上是生活随笔為你收集整理的rest风格使用两个变量_REST风格,@PathVariable注解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打开计算机 显示不支持此接口,新装的电脑
- 下一篇: (MATLAB)多个Excel表合成一个