1. Gambaran keseluruhan
Dalam artikel ini, kita akan melihat penggunaan inti org.springframework.ui.Model , org.springframework.ui.ModelMap dan org.springframework.web.servlet.ModelAndView yang disediakan oleh Spring MVC.
2. Pergantungan Maven
Mari mulakan dengan pergantungan konteks musim bunga dalam fail pom.xml kami :
org.springframework spring-context 5.2.2.RELEASE
Versi terbaru dari pergantungan konteks musim bunga boleh didapati di sini.
Untuk ModelAndView , pergantungan web-spring diperlukan:
org.springframework spring-web 5.2.2.RELEASE
Versi terkini pergantungan web musim bunga boleh didapati di sini.
Dan, jika kita menggunakan Thymeleaf sebagai pandangan kita, kita harus menambahkan kebergantungan ini ke pom.xml:
org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE
Versi ketergantungan Thymeleaf terkini boleh didapati di sini.
3. Model
Mari mulakan dengan konsep paling asas di sini - Model .
Ringkasnya, model ini dapat menyediakan atribut yang digunakan untuk menghasilkan pandangan.
Untuk memberikan pandangan dengan data yang boleh digunakan, kita hanya menambah data ini untuk fiturnya Model objek. Selain itu, peta dengan atribut dapat digabungkan dengan contoh Model :
@GetMapping("/showViewPage") public String passParametersWithModel(Model model) { Map map = new HashMap(); map.put("spring", "mvc"); model.addAttribute("message", "Baeldung"); model.mergeAttributes(map); return "viewPage"; }
4. Peta Model
Sama seperti antara muka Model di atas, ModelMap juga digunakan untuk menyampaikan nilai untuk memberikan pandangan.
Kelebihan ModelMap adalah memberi kita kemampuan untuk melewati koleksi nilai dan memperlakukan nilai-nilai ini seolah-olah berada dalam Peta :
@GetMapping("/printViewPage") public String passParametersWithModelMap(ModelMap map) { map.addAttribute("welcomeMessage", "welcome"); map.addAttribute("message", "Baeldung"); return "viewPage"; }
5. ModelAndView
Antara muka terakhir untuk menyampaikan nilai ke paparan adalah ModelAndView .
Antaramuka ini membolehkan kami menyampaikan semua maklumat yang diperlukan oleh Spring MVC sekali gus:
@GetMapping("/goToViewPage") public ModelAndView passParametersWithModelAndView() { ModelAndView modelAndView = new ModelAndView("viewPage"); modelAndView.addObject("message", "Baeldung"); return modelAndView; }
6. Pandangan
Semua data, yang kami letakkan dalam model ini, digunakan oleh tampilan - secara umum, tampilan templat untuk membuat halaman web.
Sekiranya kita mempunyai fail templat Thymeleaf yang disasarkan oleh kaedah pengawal kami sebagai pandangan mereka. Parameter yang dilalui model akan dapat diakses dari dalam kod HTML thymeleaf:
Title Web Application. Passed parameter : th:text="${message}"
Parameter yang dilalui di sini digunakan melalui sintaks $ {message} , yang dikenali sebagai placeholder. Enjin templat Thymeleaf akan menggantikan tempat letak ini dengan nilai sebenar dari atribut dengan nama yang sama yang dilalui model.
7. Kesimpulannya
Dalam tutorial ringkas ini, kami telah membincangkan tiga konsep teras dalam Spring MVC - Model , ModelMap dan ModelAndView . Kami juga melihat contoh bagaimana pandangan dapat menggunakan nilai-nilai ini.
Seperti biasa, pelaksanaan semua contoh dan coretan kod ini terdapat di Github.