Обмен технологиями

Новички в SpringMVC получают параметры запроса и эхо данных

2024-07-12

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

Файл pom.xml импортирует зависимости Lombok.

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

@Controller означает, что это контроллер

@RequestParam означает получение из внешнего интерфейса.

Обычно модель используется для передачи возвращаемых результатов во внешний интерфейс.

  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 Параметрический конструктор

@NoArgsConstructor конструктор без аргументов

(Вам необходимо импортировать jar-пакет Lombok, прежде чем вы сможете ссылаться на него)

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

Получите параметры, переданные интерфейсным пользователем, и определите имя параметра. Предполагая, что имя указано в методе, его можно использовать напрямую.

Передаваемые параметры должны соответствовать полям параметров, полученным объектом.

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

Например, введите http:localhost:8080/user/test2?name=hh&age=18 в адресной строке.

(Вам необходимо установить параметры в соответствии с созданным вами классом. Если выше используется класс User, используйте переменные в классе User)

Результат:

Как отобразить данные во внешнем интерфейсе:

1. МодельИПросмотр

Сначала создайте новый ModelAndView().

Затем инкапсулируйте данные через addObject.

Наконец, setViewName устанавливает возвращаемое имя представления.

2. Модель

Использовать интерфейс модели в скобках метода

Инкапсулировать данные через addAttribute

Наконец вернитесь к виду

3. МодельКарта

Нажмите Ctrl + H, чтобы просмотреть дерево.

ModelMap наследует LinkedHashMap и имеет все его функции.

Использование аналогично модели

Сравнение трех:

1. Модель имеет всего несколько методов, подходящих для хранения данных.

2. Помимо реализации собственных методов, ModelMap также наследует методы и характеристики LinkedHashMap.

3. При хранении данных ModelAndView может устанавливать возвращаемое логическое представление и управлять переходом слоя отображения.