Pengembangan anotasi MVC berarti pengembangan kelas berdasarkan anotasi. Untuk setiap prosesor yang ditentukan, tidak perlu mendaftar di XML.
Pendaftaran diselesaikan hanya dengan menganotasi kelas dan metode dalam kode.
Tentukan prosesor
@Controller: Kelas saat ini adalah prosesor
@RequestMapping: Metode saat ini adalah metode prosesor, nama metode ini sewenang -wenang, dan permintaan diproses dan ditanggapi.
@Controller kelas publik mycontroller {@RequestMapping (value = "/hello.do") public ModelAndView docontrol (httpservletRequest, respons httpservletResponse) {ModelAndView mv = new ModelAndView (); mv.addObject ("pesan", "metode eksekusi"); mv.setViewName ("Selamat datang, neil!"); mengembalikan MV; }} Requestmapping dapat dibatasi, misalnya
Salin kode sebagai berikut: @RequestMapping (value = "/hello.do", params = {"name = neil", "! Usia"}, metode = requestMethod.post)
Metode = RequestMethod.Post Jenis Pengajuan Terbatas untuk Diposting
params = {"name = neil", "! usia"} Nama parameter harus dibawa dalam permintaan terbatas, nilainya adalah Neil, dan usia parameter tidak dapat dibawa.
Terima parameter permintaan
Jika nama parameter dalam permintaan sama dengan nama parameter metode prosesor, maka itu dapat diperoleh secara langsung.
@RequestMapping (value = "/hello.do") public ModelAndView docontroll (nama string, int usia) {System.out.println ("Nama:" + Name + ", usia:" + usia); ModelAndView mv = new ModelAndView (); mengembalikan MV; }Jika nama parameter tidak konsisten, Anda perlu menemukannya melalui @RequestParam.
@RequestParam memiliki tiga properti
Salinan kode adalah sebagai berikut: docontroll (@RequestParam (name = "username") nama string, @RequestParam (name = "userage") int eve))
Variabel jalur @pathvariable
Parameter dalam metode prosesor dapat berasal dari parameter yang dibawa oleh permintaan, atau dari variabel di URI, yaitu variabel jalur.
Seperti parameter normal yang disebutkan di atas, jika nama variabel jalur tidak konsisten dengan nama parameter yang menerima nilainya, Anda perlu menunjukkan nama variabel jalur melalui parameter.
Seperti yang ditunjukkan di bawah ini, perhatikan nama pengguna dan nama, usia dan usia.
@RequestMapping (value = "/{username}/{usia} /hello.do") public modelandView docontroll (@pathvariable ("username") nama string, @requestparam int usia) {System.out.println ("Nama:" + Nama + ", usia:" + usia); ModelAndView mv = new ModelAndView (); mengembalikan MV; }Metode Prosesor Mengembalikan Nilai
Empat prosesor yang umum digunakan dengan anotasi @Controller adalah:
1, kembali ke ModelandView
Setelah metode prosesor selesai, ia perlu melompat ke sumber daya lain dan lulus data antara sumber daya yang dialihkan, kemudian mengembalikan ModelAndView.
public ModelAndView docontroll () {ModelAndView ModelAndView = new ModelAndView (); // Data ModelAndView.AddObject ("Name", "Neil"); modelAndView.setViewName ("/user.do"); return modelandview; }2, kembali ke Void
Setelah permintaan diproses, tidak perlu melompat, dan prosesor dapat dikembalikan ke Void, seperti respons permintaan AJAX asinkron.
Jika Anda perlu melompat, Anda juga dapat menggunakan servletapi untuk mengirim Redirect atau maju.
3, kembalikan objek
Prosesor dapat mengembalikan objek objek, yang tidak muncul sebagai tampilan logis, tetapi digunakan untuk menampilkan data secara langsung pada halaman.
Mengembalikan objek objek, Anda perlu menggunakan anotasi @ResponseBody untuk menempatkan data JSON yang dikonversi ke dalam berat respons.
@RequestMapping (value = "/hello.do") @ResponseBody Public ModelAndView docontroll () {return baru siswa ("neil", 998); } Front-end mendapat data
Fr.Ajax ({url: "hello.do", complete: function (data) {waspada (data.name + "" + data.age);}})Demikian pula, Anda dapat mengembalikan daftar koleksi, peta, dll.
@RequestMapping (value = "/hello.do") @ResponseBody public ModelAndView docontroll () {List <sisents> list = new ArrayList <Sudent> (); list.add (siswa baru ("A", 11)); list.add (siswa baru ("b", 22)); list.add (siswa baru ("C", 33)); daftar pengembalian; } Fr.Ajax ({url: "hello.do", complete: function (data) {$ (data) .each (function (index)) {waspada (data [indeks] .name + data [index] .age);}}})4, kembali ke string
Mungkin ada tiga skenario untuk mengembalikan string:
Nama tampilan logis
String yang dikembalikan oleh prosesor dapat menentukan nama tampilan logis dan mengubahnya menjadi alamat tampilan fisik melalui resolusi parser tampilan.
Jalur Akses Nyata Terakhir = "Prefix" + Nama Tampilan Logis + "Suffix"
Jika Anda tidak menentukan pra-suffix, Anda juga dapat secara langsung mengembalikan nama tampilan fisik, seperti
return "/web-inf/admin/welcome.jsp"
Redirect Redirect
return "redirect: /admin/next.action";
Itu setara dengan response.sendredirect (). Setelah meneruskan, bilah alamat browser menjadi alamat yang diteruskan.
Karena permintaan baru dimulai, parameter asli tidak dapat diteruskan ke URL berikutnya saat meneruskan.
Jika Anda ingin lulus parameter, Anda dapat menyambungkan parameter setelah url & a = 1 & b = 2
Maju ke depan
return "Forward: /Admin/forward.action";
Itu setara dengan request.getRequestDispatcher (). Forward (Request, Response). Setelah meneruskan, bilah alamat browser masih merupakan alamat asli.
Penerusan tidak melaksanakan permintaan dan tanggapan baru, tetapi berbagi permintaan dan tanggapan dengan permintaan sebelum meneruskan.
Parameter dapat digunakan kembali secara langsung sebelum meneruskan.
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.