Rumah >Java >javaTutorial >Analisis contoh tindak balas data Java SpringMVC
Kembalikan rentetan secara langsung: Kaedah ini akan menggabungkan rentetan yang dikembalikan dengan awalan dan akhiran penghurai pandangan dan kemudian lompat.
Kembalikan rentetan dengan awalan:
Ke hadapan: ke hadapan:/WEB-INF/views/index.jsp
Orientasi Semula: redirect:/index.jsp
mengembalikan
@RequestMapping("/quick2") public ModelAndView quickMethod2(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("redirect:index.jsp"); return modelAndView; } @RequestMapping("/quick3") public ModelAndView quickMethod3(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("forward:/WEB-INF/views/index.jsp"); return modelAndView; }
melalui objek ModelAndView Apabila memajukan, selalunya perlu untuk menyimpan data dalam medan permintaan dan memaparkannya dalam halaman jsp menghantar data kepada pengawal dalam pengawal Bagaimana dengan menyimpan data dalam domain permintaan?
① Tetapkan melalui kaedah setAttribute() bagi objek permintaan yang disuntik oleh rangka kerja SpringMVC.
@RequestMapping("/quick") public String quickMethod(HttpServletRequest request){ request.setAttribute("name","zhangsan"); return "index"; }
② Tetapkan melalui kaedah addObject() ModelAndView.
@RequestMapping("/quick3") public ModelAndView quickMethod3(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("forward:/WEB-INF/views/index.jsp"); modelAndView.addObject("name","lisi"); return modelAndView; }
Kembalikan rentetan secara langsung: Dalam peringkat asas Web, pelanggan mengakses pelayan Jika anda ingin menulis kembali rentetan secara terus dan mengembalikannya sebagai respons body, anda hanya perlu menggunakan respon .getWriter().print("hello world") sudah memadai, jadi bagaimana jika anda mahu menulis kembali rentetan terus dalam Pengawal?
① Melalui objek tindak balas yang disuntik oleh rangka kerja SpringMVC, gunakan response.getWriter().print("hello world") untuk menulis balik data Pada masa ini, tiada lompatan paparan diperlukan dan nilai pulangan kaedah perniagaan adalah tidak sah.
@RequestMapping("/quick4") public void quickMethod4(HttpServletResponse response) throws IOException { response.getWriter().print("hello world"); }
② Kembalikan rentetan yang perlu ditulis kembali secara langsung, tetapi pada masa ini anda perlu memaklumkan rangka kerja SpringMVC melalui anotasi @ResponseBody Rentetan yang dikembalikan melalui kaedah itu bukan lompatan tetapi dikembalikan secara langsung dalam badan respons http.
@RequestMapping("/quick5") @ResponseBody public String quickMethod5() throws IOException { return "hello springMVC!!!"; }
Semasa pembangunan, selalunya perlu menukar objek java kompleks kepada rentetan format json Kita boleh menggunakan jackson, alat penukaran json yang kami pelajari semasa peringkat web, untuk menukar
1 . Import koordinat jackson ke dalam xml.
<!--jackson--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version> </dependency>
2. Tukar rentetan format json melalui jackson dan tulis semula rentetan itu.
@RequestMapping("/quick7") @ResponseBody public String quickMethod7() throws IOException { User user = new User(); user.setUsername("zhangsan"); user.setAge(18); ObjectMapper objectMapper = new ObjectMapper(); String s = objectMapper.writeValueAsString(user); return s; }
Kembalikan objek atau koleksi
Gunakan SpringMVC untuk membantu kami menukar rentetan json kepada objek atau koleksi dan menulisnya kembali, mengkonfigurasi parameter penukaran mesej untuk penyesuai pemproses dan nyatakan penggunaan jackson untuk objek atau koleksi Penukaran koleksi, oleh itu konfigurasi berikut perlu dilakukan dalam spring-mvc.xml:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> </list> </property> </bean>
Kembalikan objek atau koleksi terus dalam kaedah
@RequestMapping("/quick8") @ResponseBody public User quickMethod8() throws IOException { User user = new User(); user.setUsername("zhangsan"); user.setAge(18); return user; }
Menambah @ResponseBody pada kaedah boleh mengembalikan rentetan dalam format json, tetapi konfigurasi ini lebih menyusahkan dan memerlukan banyak kod konfigurasi Oleh itu, kita boleh menggunakan pemacu anotasi mvc dan bukannya konfigurasi di atas.
Antara pelbagai komponen SpringMVC, pemeta pemproses, penyesuai pemproses dan penyelesai paparan dipanggil tiga komponen utama SpringMVC.
Gunakan
Juga gunakan
<!--在spring-mvc.xml中配置mvc的注解驱动--> <mvc:annotation-driven/>
Kaedah tindak balas data SpringMVC
1) Lompat halaman
Kembalikan rentetan terus 🎜>
Atas ialah kandungan terperinci Analisis contoh tindak balas data Java SpringMVC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!