Instruksi Anotasi Permintaan Permintaan
Fungsi permintaan web @RequestMapping Peta Web ke kelas penangan tertentu dan/atau metode penangan. Anotasi ini dapat digunakan pada kelas atau metode dan menentukan jalur permintaan melalui nilai properti. Digunakan pada kelas pengontrol untuk memberikan informasi pemetaan permintaan URL awal, yang merupakan jalur pra-permintaan relatif terhadap direktori root aplikasi web. Digunakan dalam metode pengontrol, itu berarti menyediakan peta URL terperinci. Jika kelas pengontrol tidak memiliki anotasi permintaan permintaan, URL dari tanda anotasi pada metode ini relatif terhadap direktori root aplikasi web.
Anotasi @RequestMapping menyediakan properti berikut:
Nama: Digunakan untuk menentukan nama mapper
Nilai: Digunakan untuk menentukan jalur pemetaan, sama seperti jalur
Jalur: Digunakan untuk menentukan jalur pemetaan, nilai yang sama
Metode: Digunakan untuk menentukan jenis permintaan: Get, Post, Head, Options, Put, Patch, Delete, Trace
Params: Tentukan parameter yang diminta
Header: Tentukan header permintaan, kode sumber Contoh: RequestMapping (value = "/sesuatu", header = "content-type = text/*")
Konsumen: Menentukan jenis konten (tipe konten) yang menangani pengiriman permintaan, seperti aplikasi/json, teks/html. Permintaan akan dipetakan hanya jika tipe konten cocok dengan salah satu jenis media ini.
Menghasilkan: Tentukan jenis konten yang dikembalikan oleh permintaan, misalnya: menghasilkan = "Aplikasi/json; charset = UTF-8"
Tentukan jalur pemetaan melalui atribut nilai
Gunakan anotasi requestmapping di kelas pengontrol
@Controller @requestMapping ("order") Public Class orderInfocontroller {// Contoh 1 @RequestMapping ("orderInfo") Public ModelAndView orderInfo1 () {return new modelandView ("order/info", "pesan", "orderInfo"); }}Menambahkan anotasi permintaanmapping ("pesanan") pada kelas pesanan, menunjukkan bahwa semua permintaan untuk pasangan harus dimulai dengan "root/order"
Jalur permintaan misalnya 1 adalah: http: // localhost: 8080/springmvcnext/order/orderInfo
Contoh 1 jika @RequestMapping ("order") pada pengontrol dikomentari, jalur permintaan yang sesuai adalah: http: // localhost: 8080/springmvcnext/orderInfo
Menggunakan RequestMapping Anotasi pada metode pengontrol
1. Penggunaan Dasar Umum
@Controller @requestMapping ("order") Public Class orderInfocontroller {// Contoh 1 @RequestMapping ("orderInfo") Public ModelAndView orderInfo1 () {return new modelandView ("order/info", "pesan", "orderInfo"); } // Contoh 2: Tangani beberapa pemetaan URL @RequestMapping ({"info", "index"}) // atau @RequestMapping (value = {"info", "index"}) public ModelAndView orderInfo2 () {return new ModelandView ("order/info", "pesan", "ordinfo2 () {return new ModelandView (" order/info "," message "," ordinfo2 () {model baru); } // Contoh 3 @RequestMapping Public ModelAndView orderInfo3 () {return new ModelAndView ("order/info", "message", "orderInfo3"); }}RequestMapping hanya mengkonfigurasi atribut nilai. Jika tidak ada atribut lain yang ditampilkan, nilainya dihilangkan. Cukup isi informasi pemetaan URL secara langsung. Jika atribut lain ditentukan, atribut nilai harus diisi dengan jelas.
Jalur akses Contoh 1 di atas adalah: http: // localhost: 8080/springmvcnext/order/orderInfo
Contoh 2: Properti Nilai dalam Antarmuka Permintaan Mapping adalah array, dan semua jalur akses juga didukung untuk lulus Contoh Array 2: http: // localhost: 8080/springmvcnext/order/index atau http: // localhost: 8080/springmvcnext/order/info atau http: // localhost: 8080/springmvcnext/order/info/info
Contoh 3: Ketika nilainya kosong, itu berarti bahwa metode tersebut adalah tindakan default di bawah kelas. Jalur akses Contoh 3 adalah: http: // localhost: 8080/springmvcnext/order
2. Pemetaan Template URL
Deklarasikan variabel URI dalam anotasi requestmapping, dan akses nilai dari URL permintaan aktual melalui anotasi @PathVariable. Contohnya adalah sebagai berikut:
@Controllerpublic class OrderInfoController { // Example 10 URL with placeholder @RequestMapping(value = "user/{userId}/order/{orderNumber}", method = RequestMethod.GET) public ModelAndView OrderInfo4(@PathVariable int userId,@PathVariable String orderNumber) { return new ModelAndView("order/info", "message", "UserId:"+UserId+"OrderNumber:"+OrderNumber); }}Contoh 10 Permintaan URL: http: // localhost: 8080/springmvcnext/user/12/order/333 Ketika permintaan dimulai melalui URL ini, springmvc akan mengekstraksi variabel × Berpathvariable dalam {×p×} dalam templat URL melalui @pathvariable. Variabel URL akan secara otomatis dikonversi ke tipe yang sesuai. Jika tidak dapat dikonversi, kesalahan akan dikembalikan. Misalnya, cobalah untuk mengaksesnya dengan url berikut: http: // localhost: 8080/springmvcnext/user/xxx/order/333 di mana parameter userid = xxx, kesalahan terjadi:
3. Pemetaan Jalur URL Gaya Semut
Karakter wildcard gaya semut adalah sebagai berikut:
Contoh:
@Controllerpublic class OrderInfoController { // Example 11 URL with placeholder @RequestMapping(value = "order*", method = RequestMethod.GET) //@RequestMapping(value = "order?", method = RequestMethod.GET) //@RequestMapping(value = "order/**", method = RequestMethod.GET) public ModelAndView OrderInfo5(String orderNumber) { return new ModelAndView ("order/info", "message", "ordinfo5"); }}Contoh 11 Permintaan URL: http: // localhost: 8080/springmvcnext/order/orderdexx? Ordernumber = 12 dapat mencocokkan semua permintaan dari http: // localhost: 8080/springmvcnext/order/orderxxxx? Ordernumber = yyyy
@RequestMapping (value = "order?", Method = requestMethod.get) dapat cocok seperti ".../ordera? OrderNumber ...." "…/PESANAN? Pesanan….” @RequestMapping (value = "order/**", Method = requestMethod.get) dapat cocok seperti ".../order/aaa? OrderNumber ...." ".../order/bbb/ccc? Ordernumber ...."
Selain itu, RequestMapping juga mendukung pemetaan jalur URL gaya ekspresi reguler, lewati ini
Tentukan jenis permintaan melalui atribut metode
Jenis Metode Atribut Predikat yang disediakan oleh RequestMapping, contoh berikut hanya menerima permintaan mendapatkan
// Contoh 4 @RequestMapping (value = "detail", method = requestMethod.get) // Anda juga dapat menggunakan @getMapping ("detail") info publicAndView () {return new modelandView ("order/info", "pesan", "info"); }SpringMVC juga menyediakan anotasi khusus untuk setiap jenis permintaan:
@Getmapping
@Postmapping
@PutMapping
@Deletemapping
@Patchmapping
Tentukan nama parameter atau batasan nilai parameter melalui params
Atribut Params dapat menentukan bahwa parameter permintaan berisi parameter spesifik, atau juga dapat menentukan kendala pada nilai parameter, seperti yang ditunjukkan pada kode berikut:
// Contoh 5 Params Parameter yang memenuhi syarat termasuk orderNumber @RequestMapping (value = "detail2", params = "ordernumber") public ModelAndView detail2 (String orderNumber) {return new modelandView ("order/info", "pesan", orderNumber); } // Contoh 6 Params Nilai parameter yang memenuhi syarat @RequestMapping (value = "detail3", params = "OrderNumber! = 1222") Public ModelAndView Detail3 (String OrderNumber) {return new ModelAndView ("order/info", "Message", orderNumber); }Contoh 5: Parameter permintaan yang memenuhi syarat harus berisi Parameter OrderNumber. Jika parameter bernama pesanan tidak termasuk, akses ditolak: jalur akses: http: // localhost: 8080/springmvcnext/order/detail2? Ordernumber = 12
Contoh 6: Parameter permintaan yang memenuhi syarat harus berisi Parameter OrderNumber dan nilai parameter tidak dapat 1222. Path Access: http: // localhost: 8080/springmvcnext/order/detail3? OrderNumber = 1222 Sebuah kesalahan dilaporkan telah dilaporkan
Tentukan nama parameter atau batasan nilai parameter melalui header
Atribut metode yang disediakan oleh RequestMapping dapat menentukan jenis header permintaan. Hanya ketika tipe header data permintaan memenuhi nilai yang ditentukan dapat diakses secara normal.
// Contoh 7 Params Nilai parameter terbatas @RequestMapping (value = "headtest", headers = "apikey = 2313131313") // @requestMapping (value = "headtest", headers = {"Accept = Application/JSON"} ""), ""), "" ")," ""), "" "" ")," "" "" "") }Contoh 7: Header Permintaan harus berisi Apikey: 23131313 untuk mengembalikan secara normal, akses langsung, dan mengembalikan kesalahan:
Tambahkan informasi header Apikey: 2313131313 Akses berhasil:
Tentukan jenis konten pengiriman yang diminta melalui konsumsi (tipe konten)
// Contoh 8 konsumen @RequestMapping (value = "consumes", Method = requestMethod.post, konsumen = "Application/JSON") Public ModelAndView Consumers (String OrderNumber) {return new ModelAndView ("order/info", "pesan", orderNumber); }Contohnya membatasi jenis parameter permintaan ke Application/JSON, yang berarti bahwa metode ini hanya memproses permintaan agar tipe konten adalah aplikasi/json:
Berikut ini melewati tes tukang pos:
Atur format parameter permintaan ke Aplikasi/JSON, yang dapat diakses secara normal:
Atur format parameter ke X-Form-Ublencoded, Return Error, HTTP Status 415
Tentukan jenis konten yang dikembalikan melalui produksi (tipe konten)
Atribut produsen digunakan untuk mengatur jenis konten pengembalian dan memenuhi persyaratan berikut: Nilai yang berisi penerimaan di header dari permintaan Accept sama dengan nilai yang ditetapkan oleh produsen, atau permintaan yang diterima diatur tanpa tampilan.
// Contoh 8 Menghasilkan Aplikasi Data Pengembalian Terbatas/JSON @RequestMapping (value = "menghasilkan", metode = requestMethod.get, menghasilkan = "Application/JSON") ModelDView Publik menghasilkan (String orderNumber) {return new ModelAndView ("order/info", "pesan", orderNumber); }Contoh 8 menunjukkan aplikasi format konten pengembalian/JSON. Ketika format menerima yang ditetapkan oleh klien adalah teks/json, kesalahan dilaporkan. Status HTTP 406
Ketika format menerima yang ditetapkan oleh klien adalah aplikasi/json atau nilai menerima tidak diatur, itu dapat dijalankan secara normal
Meringkaskan
Di atas adalah permintaan pemetaan permintaan anotasi untuk ulasan MVC Spring dan pelajari serangkaian tutorial baru yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!