Kata pengantar
Artikel ini terutama memperkenalkan konten yang relevan tentang routing musim semi berdasarkan parameter URL. Ini dibagikan untuk referensi dan nilai belajar Anda. Mari kita lihat perkenalan terperinci di bawah ini.
Temukan masalah
Baru -baru ini, saya menemukan masalah ketika menulis antarmuka, yaitu bagian jalur dari URL dari dua antarmuka REST adalah sama, dan mereka dibedakan sesuai dengan kueri yang lewat dalam parameter yang berbeda.
Misalnya, antarmuka unggahan normal S3 adalah:
Put /{bucketname} /{objectName}Antarmuka untuk mengunggah dalam potongan adalah:
Put /{bucketName} /{objekName}? PartNumber = {PartNumber} & unggahah = {unggah}Partnumber dan unggah adalah satu antarmuka, dan dua parameter tidak diteruskan adalah antarmuka lain. Jadi bagaimana cara mengatur rute di musim semi?
Secara umum, kami mengatur rute @RequestMapping(value = "/xx", method = RequestMethod.GET) . Kemudian dalam tanda tangan metode, parameter dapat disuntikkan melalui @RequestParam.
Namun, tidak mungkin untuk secara langsung menerapkan perbedaan dengan menyuntikkan parameter yang berbeda, seperti:
@Responsebody@requestMapping (value = "/xx", Method = requestMethod.get) Public String get1 () {return "get1";}@responsebody@requestMapping (value = "/xx", Method = requestMethod.get) Public String get2 (@RequestParam nama) {return "get2" + name;} public get2 (@requestparam) {return "get2" + name;} public get2 (@requestparam) {return "get2" + name;} public get2 (@requestparam) {return "get2" + name;} name;Ini akan melaporkan kesalahan:
java.lang.illegalstateException: pemetaan ambigu. Tidak dapat memetakan 'democontroller_v01' metode public java.lang.string com.nd.sdp.ndss.controller.v01.democontroller.get1 () ke {[/demo/xx], metode = [get]}: Sudah ada 'democontroller_v01' bean 'bean' bean 'bean'Larutan
Ini berarti Anda telah mendaftar berulang kali, jadi @RequestParam tidak dapat digunakan sebagai basis perutean.
@RequestParam
Digunakan untuk memproses tipe konten: Konten yang dikodekan untuk aplikasi/X-WWW-Form-Burlencoded. (Dalam protokol HTTP, jika tipe konten tidak ditentukan, parameter yang dilewati default adalah jenis aplikasi/X-WWW-Form-Form))
RequestParam dapat menerima properti dari tipe sederhana atau tipe objek.
Essensinya adalah menggunakan ConversionService Mekanisme Konversi Spring untuk mengonfigurasi peta parameter nilai-kunci dalam permintaan.getParameter () untuk mengonversinya menjadi objek atau bidang penerima parameter.
@RequestMapping adalah anotasi perutean. Selain bidang nilai yang umum digunakan untuk mengatur URL, ini juga menyediakan parameter Params, yang dapat menentukan cara mencocokkan parameter kueri dalam URL. Beberapa metode konfigurasi:
Ini memungkinkan Anda untuk menentukan rute dengan sangat fleksibel.
Selain itu, @RequestMapping juga menyediakan parameter header, yang memungkinkan kami untuk merutekan sesuai dengan situasi header!
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.