Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 메이븐
- 기술 대비
- Join
- 서블릿
- 인텔리제이
- STS
- toUpperCase
- 프레임워크
- MVC2
- MVC
- 프로그래머스
- 스프링
- 뉴렉처
- 코테
- @Controller
- 롬복
- SQL
- 김영한
- DDL
- Model2
- select
- AOP
- Lombok
- @RestController
- 인프런
- 코딩테스트
- Model1
- JSP
- 서브쿼리
- 자바
Archives
- Today
- Total
Heestory
@Controller: return redirectUrl vs return ModelAndView 본문
@Controller에서 return redirectUrl (String)과 return ModelAndView는 반환값 처리 방식과 용도에서 차이가 있습니다. 아래는 이 두 가지 방법의 차이점을 정리한 내용입니다.
1. return redirectUrl (String)
설명
- 문자열을 반환하며, 반환된 값이 리다이렉트 경로로 간주됩니다.
- Spring MVC에서 redirect:로 시작하는 문자열은 클라이언트에게 HTTP 리다이렉트 응답을 보냅니다.
특징
- 리다이렉트 처리:
- 브라우저가 지정된 경로로 새로운 요청을 보냅니다.
- 클라이언트가 새로운 요청을 보내므로 URL이 변경됩니다.
- 사용법:
- 주로 폼 제출 후 특정 페이지로 이동하거나 다른 컨트롤러 경로로 리다이렉트할 때 사용됩니다.
- 데이터 전달 제한:
- 리다이렉트에서는 데이터 전달이 제한됩니다. RedirectAttributes 또는 쿼리 파라미터를 사용해야 데이터를 전달할 수 있습니다.
@Controller
public class RedirectController {
@PostMapping("/submit")
public String handleForm() {
return "redirect:/success"; // /success 경로로 리다이렉트
}
}
2. return ModelAndView
설명
- ModelAndView 객체를 반환하며, 이는 뷰와 모델 데이터를 함께 정의합니다.
- 반환값은 뷰 이름과 데이터(모델)를 포함하여 렌더링될 페이지를 지정합니다.
특징
- 뷰 렌더링 처리:
- 서버에서 지정된 뷰 템플릿을 렌더링합니다.
- 클라이언트가 새로운 요청을 보내지 않으므로 URL이 변경되지 않습니다.
- 데이터 전달 가능
- 모델 데이터를 뷰로 전달하여 동적으로 HTML을 생성할 수 있습니다.
- 사용법:
- 주로 서버 사이드 렌더링을 통해 데이터를 클라이언트에게 전달할 때 사용됩니다.
@Controller
public class ViewController {
@GetMapping("/greet")
public ModelAndView greetUser() {
ModelAndView mv = new ModelAndView("greeting"); // greeting.html
mv.addObject("message", "Hello, User!");
return mv;
}
}
주요 차이점 요약
특징 | return redirectUrl (String) | return ModelAndView |
기본 목적 | 클라이언트의 리다이렉트 처리 | 뷰 렌더링 및 데이터 전달 |
URL 변경 여부 | URL이 변경됨 | URL이 변경되지 않음 |
데이터 전달 방법 | 쿼리 파라미터 또는 RedirectAttributes 필요 | ModelAndView 객체를 통해 데이터 전달 |
사용 사례 | 다른 경로로 이동 | 템플릿 엔진을 사용하여 동적 페이지 생성 |
'개발(0) > Spring Boot' 카테고리의 다른 글
Spring Boot JAR 배포 시 application.yml 설정 적용 우선순위 (0) | 2025.02.19 |
---|---|
Spring Framework: @RestController vs @Controller – 차이점 이해하기 (1) | 2025.01.02 |
[IntelliJ]Junit 기본 설정 중 에러 (Spring Boot 2, Junit4) (0) | 2024.05.20 |
[IntelliJ]@Autowired 에러(Junit) (0) | 2024.05.14 |
[IntelliJ]Maven 빌드 에러 (0) | 2023.08.17 |