기술나눔

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 인수 없는 생성자

(참조하기 전에 Lombok의 jar 패키지를 가져와야 합니다)

  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는 반환된 논리적 뷰를 설정하고 표시 레이어의 점프를 제어할 수 있습니다.