Compartir tecnología

Los principiantes en SpringMVC reciben parámetros de solicitud y eco de datos

2024-07-12

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

El archivo pom.xml importa dependencias de lombok

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

@Controller significa que este es un controlador

@RequestParam significa recibir desde el front-end

Generalmente, el modelo se utiliza para pasar los resultados devueltos al 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 Constructor paramétrico

@NoArgsConstructor constructor sin argumentos

(Debe importar el paquete jar de lombok antes de poder hacer referencia a él)

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

Reciba los parámetros pasados ​​por el usuario de front-end y determine el nombre del parámetro. Suponiendo que el nombre está en el método, se puede usar directamente.

Los parámetros pasados ​​deben ser consistentes con los campos de parámetros recibidos por el objeto.

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

Por ejemplo, ingrese http:localhost:8080/user/test2?name=hh&age=18 en la barra de direcciones.

(Debe establecer parámetros de acuerdo con la clase que creó. Si la clase Usuario se usa arriba, use las variables en la clase Usuario)

La salida es:

Cómo mostrar datos en el front-end:

1. Modelo y vista

Primero crea un nuevo ModelAndView()

Luego encapsule los datos a través de addObject

Finalmente, setViewName establece el nombre de la vista devuelta.

2. Modelo

Utilice la interfaz del modelo entre paréntesis de método

Encapsular datos a través de addAttribute

Finalmente regresa a la vista.

3. Mapa del modelo

Presione Ctrl + H para ver el árbol.

ModelMap hereda LinkedHashMap y tiene todas sus funciones

El uso es similar al modelo.

Comparación de los tres:

1. El modelo tiene solo unos pocos métodos adecuados para almacenar datos.

2. Además de implementar sus propios métodos, ModelMap también hereda los métodos y características de LinkedHashMap.

3. Mientras almacena datos, ModelAndView puede configurar la vista lógica devuelta y controlar el salto de la capa de visualización.