Berbagi teknologi

Pemula SpringMVC menerima parameter permintaan dan gema data

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

File pom.xml mengimpor dependensi lombok

  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.34</version>
  5. </dependency>

@Controller berarti ini adalah pengontrol

@RequestParam berarti menerima dari front end

Umumnya, Model digunakan untuk meneruskan hasil yang dikembalikan ke front end.

  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestParam;
  7. @Controller
  8. @RequestMapping("/user")
  9. public class UserController {
  10. //localhost:8080/user/test?name=xx
  11. @GetMapping("/test")
  12. public String test(@RequestParam("name") String name, Model model){
  13. //1.接收前端参数
  14. System.out.println(name);
  15. //2.将返回的结果传递给前端
  16. model.addAttribute("msg",name);
  17. //3.视图跳转
  18. return "test"; //test.jsp
  19. }
  20. }

@AllArgsConstructor Konstruktor parametrik

@NoArgsConstructor konstruktor tanpa argumen

(Anda perlu mengimpor paket toples lombok sebelum dapat mereferensikannya)

  1. package com.demo.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @AllArgsConstructor //有参构造器
  7. @NoArgsConstructor //无参构造器
  8. public class User {
  9. private String name;
  10. private int age;
  11. }

Menerima parameter yang diteruskan oleh pengguna front-end dan menentukan nama parameternya. Dengan asumsi nama tersebut ada pada metode, maka dapat digunakan secara langsung.

Parameter yang diteruskan harus konsisten dengan field parameter yang diterima objek

  1. package com.demo.controller;
  2. import com.demo.pojo.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. @Controller
  7. @RequestMapping("/user")
  8. public class UserController {
  9. /*
  10. 1.接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用
  11. 2.假设传递的是一个对象User,匹配User对象中的字段名
  12. */
  13. @GetMapping("/test2")
  14. public String test2(User user){
  15. System.out.println(user);
  16. return "test";
  17. }
  18. }

Misalnya, masukkan http:localhost:8080/user/test2?name=hh&age=18 di bilah alamat.

(Anda perlu mengatur parameter sesuai dengan kelas yang Anda buat. Jika kelas Pengguna yang digunakan di atas, gunakan variabel yang ada di kelas Pengguna)

Outputnya adalah:

Cara menampilkan data ke front end:

1. ModelDanTampilan

Pertama buat ModelAndView() baru

Kemudian merangkum data melalui addObject

Terakhir, setViewName menyetel nama tampilan yang dikembalikan.

2. Model

Gunakan antarmuka Model dalam tanda kurung metode

Enkapsulasi data melalui addAttribute

Akhirnya kembali ke tampilan

3. Peta Model

Tekan ctrl + h untuk melihat pohon

ModelMap mewarisi LinkedHashMap dan memiliki semua fungsinya

Penggunaannya mirip dengan Model

Perbandingan ketiganya:

1. Model hanya memiliki sedikit metode yang cocok untuk menyimpan data

2. Selain mengimplementasikan metodenya sendiri, ModelMap juga mewarisi metode dan karakteristik LinkedHashMap

3. Saat menyimpan data, ModelAndView dapat mengatur tampilan logis yang dikembalikan dan mengontrol lompatan lapisan tampilan.