Dalam proses belajar Spring MVC, perlu untuk terlebih dahulu memahami beberapa parameter utama:
@Controller:
Dianotasi di kelas, kelas ini akan memprogram pengontrol, dan ketika proyek dimulai Spring, ia akan secara otomatis memindai untuk kelas ini dan melakukan pemetaan perutean URL yang sesuai.
@ControllerPublic kelas UserAction {} @Requestmapping
Tentukan jalur pemetaan URL. Jika RequestMapping dikonfigurasi pada pengontrol, metode permintaan spesifik juga mengonfigurasi jalur. Jalur yang dipetakan adalah overlay dari dua jalur. Peta yang umum digunakan seperti: requestmapping ("url.html")
Konfigurasikan jalur pemetaan:
@ControllerPublic kelas UserAction {@RequestMapping (value = "/get_alluser.html") public ModelAndView getallUser (string id) {}} Pemetaan konfigurasi di atas
http: // ***: 8080: web1/get_alluser.html:
Jika Anda menambahkan @RequestMapping (value = "/user") ke @Controller, jalur peta menjadi
http: // ***: 8080: web1/user/get_alluser.html
@ResponseBody
Mengembalikan string yang sesuai dengan metode anotasi secara langsung
@RequestParam
Secara otomatis memetakan parameter yang sesuai dengan URL ke nilai -nilai di atas tindakan, dan meminta parameter yang diperlukan untuk parameter yang diperlukan.
@PathVariable
Dapatkan parameter pemetaan URL dari format yang ditentukan dari konfigurasi @Requestmapping
/ * * Output langsung html, atau string json * jalur permintaan: * /web1/urlinfo/getcontent.html?key=rhythmk * /web1/urlinfo/getcontent.json?key=rhythmk */@responseBody @requestmapping (value = "/@responseBody (value ="/@responseBody @requestmapping (bernilai = " @RequestParam ("Key") Key String, @RequestParam (value = "Key2", wajib = false, defaultValue = "defaultValue") string key2) {System.out.println ("GetContent dipanggil"); String result = "Return Content secara langsung - KEY:" + KEY + ", KEY2:" + KEY2; System.out.println (hasil); hasil pengembalian; }/ * * RequestMapping mendukung konfigurasi URL antar-gaya: * jalur permintaan: * /urlinfo/geturlant/config.html?key=adddd */@responseBody @requestmapping (value = "/getUrlant/**.html" itu geturlant public (httpservlet (httpservlet (httpservlet) request.getQueryString (); hasil pengembalian; }
/* * Configure the URL of the specified format and map to the corresponding parameters* Request path: /web1/urlinfo/geturlparam/12_123.html * */ @RequestMapping(value = "/geturlparam/{id}_{menuId}.html") public ModelAndView getUrlParam(@PathVariable("id") String id, @Pathvariable ("menuId") String menuID) {ModelAndView Mode = new ModelAndView (showmsg); mode.addObject ("msg", "Geted ID:" + ID + ", menuID:" + menuID); mode pengembalian; } /** Hanya permintaan pos yang diterima*/@ResponseBody @RequestMapping (value = "/Posturl.html", Method = requestMethod.post) Urlmethod (@RequestParam string id) {return "hanya permintaan pos, ID diperoleh:" + id; } / * * Tulis cookie * */@RequestMapping ("/writeCookies.html") Public ModelAndView WriteCookies (@RequestParam Nilai string, httpservletResponse response) {response.addcookie (cookie baru ("kunci", value))); ModelAndView Mode = new ModelAndView (showmsg); mode.addObject ("msg", "cookie ditulis dengan sukses"); mode pengembalian; } / * * Dapatkan nilai kunci yang sesuai melalui @cookievalue * */@RequestMapping ("/getCookies.html") Public ModelAndView GetCookie (@Cookievalue ("Key") String CookValue) {ModelAndView Mode = ModelDView baru (showmsg); mode.addObject ("msg", "cookies =" + cookValue); mode pengembalian; } /* * Pass the Servlet Api as a parameter in * You can use HttpServletResponse directly in the action, HttpServletRequest * */ @RequestMapping("/servlet.html") public String Servlet1(HttpServletResponse response, HttpServletRequest request) { Boolean result = (request != null && response != null); ModelAndView Mode = new ModelAndView (); mode.addObject ("msg", "result =" + result.toString ()); return showmsg; } / * * Instantiate objek sesuai dengan parameter yang dilewati dalam URL * * misalnya: http://127.0.0.1:8080/web1/urlinfo/getObject.html?UserID=1&USERNAME=AD */@RequestMapping ("getObject.htmlectmlect") publice. */@requestmapping ("getObject.htmlject.htm ID: " + user.getUserId (). ToString () +", nama pengguna: " + user.getUserName (). ToString (); ModelAndView Mode = new ModelAndView (showmsg); mode.addObject ("msg", "result =" + result.toString ()); mode pengembalian; } Menerapkan lompatan halaman:
/ * * Menerapkan halaman lompat * /web1/urlinfo/redirectpage.html * */@RequestMapping ("/redirectpage.html") string publik redirectpage () {return "Redirect: getCookies.html? R = 10"; } Mengembalikan JSON secara langsung
URL yang diminta harus diakhiri dengan .Json, jika tidak pengecualian
Gagal memuat sumber daya: Server merespons dengan status 406 (tidak dapat diterima): sumber daya yang diidentifikasi oleh permintaan ini hanya mampu menghasilkan tanggapan dengan karakteristik yang tidak dapat diterima sesuai dengan permintaan "menerima" header ()
Entitas Kembali:
@Jsonserialize (termasuk = jsonserialize.inclusion.non_null) kelas publik UserInfo {private integer userid; integer publik getUserId () {return userId; } public void setUserId (integer userId) {userId = userId; } public string getUserName () {return username; } public void setusername (string username) {username = username; } nama pengguna string pribadi; }Tindakan kembali
@ResponseBody @RequestMapping ("/getUser.json") Public UserInfo getUser () {System.out.println ("getUser"); UserInfo model = UserInfo baru (); model.setUserId (100); model.setusername ("Wang Kun"); model pengembalian; } bertanya:
/web1/urlinfo/getuser.json
Keluaran:
{"userid": 100, "nama pengguna": "wang kun"}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.