亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

SpringMVC之@RequestMapping詳解

2019-11-14 15:28:30
字體:
來源:轉載
供稿:網友

(轉自:http://blog.csdn.net/walkerjong/article/details/7994326)

引言:

前段時間項目中用到了RESTful模式來開發程序,但是當用POST、PUT模式提交數據時,發現服務器端接受不到提交的數據(服務器端參數綁定沒有加任何注解),查看了提交方式為application/json, 而且服務器端通過request.getReader() 打出的數據里確實存在瀏覽器提交的數據。為了找出原因,便對參數綁定(@RequestParam、 @RequestBody、 @RequestHeader 、 @PathVariable)進行了研究,同時也看了一下HttpMessageConverter的相關內容,在此一并總結。

 

簡介:

@RequestMapping

RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

RequestMapping注解有六個屬性,下面我們把她分成三類進行說明。

1、 value, method;

value:     指定請求的實際地址,指定的地址可以是URI Template 模式(后面將會說明);

method:  指定請求的method類型, GET、POST、PUT、DELETE等;

 

2、 consumes,PRoduces;

consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;

produces:    指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

 

3、 params,headers;

params: 指定request中必須包含某些參數值是,才讓該方法處理。

headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。

 

示例:

1、value  / method 示例

默認RequestMapping("....str...")即為value的值;

 1 @Controller 2 @RequestMapping("/appointments") 3 public class AppointmentsController { 4  5     private AppointmentBook appointmentBook; 6      7     @Autowired 8     public AppointmentsController(AppointmentBook appointmentBook) { 9         this.appointmentBook = appointmentBook;10     }11 12     @RequestMapping(method = RequestMethod.GET)13     public Map<String, Appointment> get() {14         return appointmentBook.getAppointmentsForToday();15     }16 17     @RequestMapping(value="/{day}", method = RequestMethod.GET)18     public Map<String, Appointment> getForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day, Model model) {19         return appointmentBook.getAppointmentsForDay(day);20     }21 22     @RequestMapping(value="/new", method = RequestMethod.GET)23     public AppointmentForm getNewForm() {24         return new AppointmentForm();25     }26 27     @RequestMapping(method = RequestMethod.POST)28     public String add(@Valid AppointmentForm appointment, BindingResult result) {29         if (result.hasErrors()) {30             return "appointments/new";31         }32         appointmentBook.addAppointment(appointment);33         return "redirect:/appointments";34     }35 }

value的uri值為以下三類:

A) 可以指定為普通的具體值;

B)  可以指定為含有某變量的一類值(URI Template Patterns with Path Variables);

C) 可以指定為含正則表達式的一類值( URI Template Patterns with Regular Expressions);

example B:

1 @RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)2 public String findOwner(@PathVariable String ownerId, Model model) {3   Owner owner = ownerService.findOwner(ownerId);  4   model.addAttribute("owner", owner);  5   return "displayOwner"; 6 }

example C:

1 @RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:/d/./d/./d}.{extension:/.[a-z]}")2   public void handle(@PathVariable String version, @PathVariable String extension) {    3     // ...4   }5 }

2 consumes、produces 示例

cousumes的樣例:

@Controller@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")public void addPet(@RequestBody Pet pet, Model model) {        // implementation omitted}

方法僅處理request Content-Type為“application/json”類型的請求。

produces的樣例:

@Controller@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")@ResponseBodypublic Pet getPet(@PathVariable String petId, Model model) {        // implementation omitted}

方法僅處理request請求中Accept頭中包含了"application/json"的請求,同時暗示了返回的內容類型為application/json;

3 params、headers 示例

params的樣例:

1 @Controller2 @RequestMapping("/owners/{ownerId}")3 public class RelativePathUriTemplateController {4 5   @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue")6   public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {    7     // implementation omitted8   }9 }

僅處理請求中包含了名為“myParam”,值為“myValue”的請求;

headers的樣例:

1 @Controller2 @RequestMapping("/owners/{ownerId}")3 public class RelativePathUriTemplateController {4 5 @RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/")6   public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {    7     // implementation omitted8   }9 }

僅處理request的header中包含了指定“Refer”請求頭和對應值為“http://www.ifeng.com/”的請求;

上面僅僅介紹了,RequestMapping指定的方法處理哪些請求,下面一篇將講解怎樣處理request提交的數據(數據綁定)和返回的數據。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看免费高清完整版| 日本亚洲欧洲色| 久久精品中文字幕一区| 精品国产精品三级精品av网址| 亚洲第一精品夜夜躁人人爽| 日韩中文字幕网| 欧美wwwwww| 亚洲欧美日韩久久久久久| 一区二区在线免费视频| 欧美丰满少妇xxxx| 中文字幕日韩精品有码视频| 国产福利精品av综合导导航| 久久这里只有精品视频首页| 成人精品视频久久久久| 亚洲人成啪啪网站| 亚洲天堂第二页| 久热国产精品视频| 一区二区在线视频| 日韩高清免费观看| 亚洲人精品午夜在线观看| 疯狂欧美牲乱大交777| 国产精品av网站| 国产午夜精品视频| 色小说视频一区| 国产精品第10页| 国产女人18毛片水18精品| 九九热r在线视频精品| 久久精品国产成人| 国产亚洲精品美女久久久久| 久久久久久亚洲精品中文字幕| 欧美一区二区大胆人体摄影专业网站| 综合网中文字幕| 蜜臀久久99精品久久久久久宅男| 久久久久亚洲精品成人网小说| 久久激情视频久久| 欧美激情精品久久久久久久变态| 日韩电影大片中文字幕| 亚洲国产精品久久91精品| 成人黄色片网站| 精品国产福利视频| 国产不卡av在线| 中文在线不卡视频| 精品无人区乱码1区2区3区在线| 亚洲欧美制服另类日韩| 日韩av成人在线| 国产欧美日韩视频| 国产精品成人国产乱一区| 欧美日韩性视频在线| 日韩av网址在线| 精品国产乱码久久久久久虫虫漫画| 91国产美女在线观看| yw.139尤物在线精品视频| 欧美成人午夜剧场免费观看| 色偷偷av亚洲男人的天堂| 欧美一级高清免费播放| 亚洲大胆美女视频| 亚洲精品久久久久中文字幕二区| 91国产精品电影| 欧美日韩国产综合新一区| 久久久久久久久久久免费精品| 精品国产拍在线观看| 国产亚洲日本欧美韩国| 日韩一区二区欧美| 亚洲色图欧美制服丝袜另类第一页| 亚洲字幕一区二区| 九九视频这里只有精品| 国产精品视频中文字幕91| 亚洲国产一区二区三区在线观看| 欧美激情一区二区三区久久久| 久久手机免费视频| 欧美一区视频在线| 欧美成人黄色小视频| 久久999免费视频| 欧美中文字幕第一页| 亚洲综合色激情五月| 国产精品激情av电影在线观看| 亚洲国产私拍精品国模在线观看| www日韩中文字幕在线看| 精品亚洲一区二区三区四区五区| 中文字幕一区二区三区电影| 国产suv精品一区二区| 亚洲成av人片在线观看香蕉| 奇米一区二区三区四区久久| 91精品中国老女人| 色狠狠久久aa北条麻妃| 夜夜狂射影院欧美极品| 欧美专区在线播放| 亚洲aⅴ日韩av电影在线观看| 热re91久久精品国99热蜜臀| 57pao国产精品一区| 欧美激情乱人伦一区| 亚洲成年人在线| 国产69精品久久久久99| 欧美xxxx14xxxxx性爽| 久久久久久亚洲精品不卡| 在线成人激情黄色| 亚洲欧美日韩一区在线| 国产精品视频成人| 色偷偷888欧美精品久久久| 国产亚洲激情视频在线| 午夜剧场成人观在线视频免费观看| 97久久久久久| 26uuu另类亚洲欧美日本老年| 国产精品麻豆va在线播放| 日韩精品视频在线| 日韩中文字幕国产精品| 久久久亚洲影院你懂的| 91久久精品日日躁夜夜躁国产| 国产亚洲精品综合一区91| 91精品国产综合久久香蕉的用户体验| 播播国产欧美激情| 亚洲自拍偷拍网址| 国产成人一区二区| 久久亚洲国产精品成人av秋霞| 国产v综合ⅴ日韩v欧美大片| 懂色av影视一区二区三区| 亚洲最新av在线网站| 欧美国产一区二区三区| 国产日韩精品在线播放| www国产亚洲精品久久网站| 亚洲全黄一级网站| 久久亚洲精品中文字幕冲田杏梨| 久久影视三级福利片| 日韩va亚洲va欧洲va国产| 日韩电影免费观看在线| 插插插亚洲综合网| 精品香蕉一区二区三区| 欧美理论电影在线播放| 亲子乱一区二区三区电影| 亚洲高清av在线| 欧美剧在线观看| 日本国产欧美一区二区三区| 久久精品久久久久久国产 免费| 国产日韩精品视频| 日韩av综合网站| 久久天天躁狠狠躁夜夜爽蜜月| 国产在线观看91精品一区| 色噜噜国产精品视频一区二区| 久久久成人精品视频| 91久久国产综合久久91精品网站| 亚洲香蕉成视频在线观看| 久久久国产91| 欧美专区在线视频| 一区三区二区视频| 91精品成人久久| 国产91精品最新在线播放| 美日韩丰满少妇在线观看| 亚洲区中文字幕| 欧美乱人伦中文字幕在线| 久久久久久久久久av| 日韩成人网免费视频| 久久精品国产96久久久香蕉| 国产一区二区在线免费视频| 97视频网站入口| 97在线免费观看视频| 亚洲丁香婷深爱综合| 久久影院在线观看| 九九精品在线视频| 亚洲欧美日韩视频一区| 久久伊人91精品综合网站| 欧美精品免费在线观看| 97视频在线观看成人| 欧美成人亚洲成人| 综合国产在线视频|