@RequestParam和@RequestBody
1.@RequestParam作用場景:
當(dāng)前端傳到后臺(tái)時(shí),后臺(tái)接收的參數(shù)名和前臺(tái)傳遞的參數(shù)名一致;
比如:正常情況下,
jsp:<a href="param/testRequestParam?username=hehe">RequestParam</a>
controller:public String?testRequestParam(String username){
}
這種接收參數(shù)就可以接收成功,但是如果后臺(tái)需要接收uname的參數(shù),但是又不想改jsp中的username,就可以使用下面的方式
jsp:<a href="param/testRequestParam?username=hehe">RequestParam</a>
controller:public String?testRequestParam(@RequestParam("uname")String username){
}
這樣即不需要修改jsp中的參數(shù)名字,也不需要修改controller中的參數(shù)名字,后臺(tái)還可以獲取參數(shù)成功。
2.@RequestBody作用場景
用于獲取請(qǐng)求體內(nèi)容,直接使用得到的是key=value&key=value...結(jié)構(gòu)的數(shù)據(jù),該注解不適用與get請(qǐng)求。
jsp:<a href="param/testRequestParam?username=hehe">RequestParam</a>
第一種使用方式:
controller:public String?testRequestBody(@RequestBody String body){
//把String對(duì)象轉(zhuǎn)換成JSONObject對(duì)象,json.parseObbject(String str)是將str轉(zhuǎn)換成相應(yīng)的jsonObject對(duì)象,其中str是“鍵值對(duì)”形式的json字符串,轉(zhuǎn)化為jsonObject對(duì)象之后就可以使用其內(nèi)置的方法,進(jìn)行處理JSONObject str = JSON.parseObject(body); //根據(jù)鍵值對(duì)的方式獲取參數(shù) String o = str.getString("id");}
?
另外,使用下面的方式更加簡單,不需要使用JSONObject對(duì)象進(jìn)行轉(zhuǎn)換
第二種使用方式:
controller:public String?testRequestParam(@RequestBody Map<String, String> params){
String id = params.get("id");}
當(dāng)然,如果是封裝好的實(shí)體類可以直接使用:
controller:public String?testRequestParam(@RequestBody TbTaxCard card){
? ? ? ? ? ? ? ? ?card.getOpenId()
}
總結(jié)
以上是生活随笔為你收集整理的@RequestParam和@RequestBody的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql查询时有两条一模一样的结果应该
- 下一篇: yml配置文件中有特殊字符解决方案