Compartilhamento de tecnologia

Iniciantes no SpringMVC recebem parâmetros de solicitação e eco de dados

2024-07-12

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

O arquivo pom.xml importa dependências do lombok

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

@Controller significa que este é um controlador

@RequestParam significa receber do front-end

Geralmente, Model é usado para passar os resultados retornados para o 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 Construtor paramétrico

@NoArgsConstructor Construtor sem argumentos

(Você precisa importar o pacote jar do lombok antes de poder referenciá-lo)

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

Receba os parâmetros passados ​​pelo usuário front-end e determine o nome do parâmetro. Supondo que o nome esteja no método, ele pode ser usado diretamente.

Os parâmetros passados ​​devem ser consistentes com os campos de parâmetros recebidos pelo 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 exemplo, insira http:localhost:8080/user/test2?name=hh&age=18 na barra de endereço.

(Você precisa definir parâmetros de acordo com a classe que você criou. Se a classe User for usada acima, use as variáveis ​​na classe User)

A saída é:

Como exibir dados no front-end:

1. Modelo e visualização

Primeiro crie um novo ModelAndView()

Em seguida, encapsule os dados por meio de addObject

Finalmente, setViewName define o nome da visualização retornada.

2. Modelo

Use a interface do modelo entre colchetes de método

Encapsular dados por meio de addAttribute

Finalmente retorne à visualização

3. Mapa do modelo

Pressione ctrl + h para ver a árvore

ModelMap herda LinkedHashMap e tem todas as suas funções

O uso é semelhante ao Modelo

Comparação dos três:

1. O modelo possui apenas alguns métodos adequados para armazenar dados

2. Além de implementar seus próprios métodos, ModelMap também herda os métodos e características do LinkedHashMap

3. Ao armazenar dados, ModelAndView pode definir a visualização lógica retornada e controlar o salto da camada de exibição.