Rumah >Java >javaTutorial >Analisis contoh tindak balas data Java SpringMVC

Analisis contoh tindak balas data Java SpringMVC

WBOY
WBOYke hadapan
2023-05-21 12:16:06809semak imbas

1) Lompat halaman

Kembalikan rentetan secara langsung: Kaedah ini akan menggabungkan rentetan yang dikembalikan dengan awalan dan akhiran penghurai pandangan dan kemudian lompat.

Analisis contoh tindak balas data Java SpringMVC

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;
}

2) Tulis kembali data

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;
}

3) Konfigurasikan pemacu anotasi

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 untuk memuatkan RequestMappingHandlerMapping (pemeta pemprosesan) dan RequestMappingHandlerAdapter (penyesuai pemprosesan), yang boleh digunakan dalam fail konfigurasi Spring-xml.xml. didorong> anotasi alternatif Pemproses dan konfigurasi penyesuai.

Juga gunakan secara lalai lapisan asas akan menyepadukan jackson untuk menukar rentetan objek atau koleksi format json.

<!--在spring-mvc.xml中配置mvc的注解驱动--> 
<mvc:annotation-driven/>

4) Mata pengetahuan

Kaedah tindak balas data SpringMVC

1) Lompat halaman

  • Kembalikan rentetan terus 🎜>

  • Kembalikan

melalui objek ModelAndView 2) Tulis semula data >

    Mengembalikan objek atau koleksi

Atas ialah kandungan terperinci Analisis contoh tindak balas data Java SpringMVC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam