티스토리 뷰
출처: https://sambalim.tistory.com/69 [삼바의 성장 블로그]
스프링의 @Controller에서 @RequestMapping 어노테이션을 사용할 경우, 대표적으로 ModelAndView, String 등 여러가지 타입으로 정의할 수 있다.
0. 설정
1.application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
view를 /WEB-INF/jsp/ 내의 .jsp파일로 지정하였다.
2. Host, Port
http://localhost:8080
1. ModelAndView
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello() {
ModelAndView view = new ModelAndView();
// View는 hello.jsp
view.setViewName("hello");
// [hello.jsp] ${name} = Lim
view.addObject("name", "Lim");
return view;
}
}
http://localhost:8080/hello 를 REQUEST한 경우, hello.jsp가 View가 된다.
2. String
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
// View는 hello.jsp
return "hello";
}
}
String의 경우 리턴 값이 View의 이름으로 사용된다.
http://localhost:8080/hello 를 REQUEST한 경우, hello.jsp가 View가 된다.
3. void
@Controller
public class HelloController {
@RequestMapping("/hello")
public void hello() { }
}
RequestToViewNameResolver를 통해 자동생성되는 View 이름이 사용된다.
URL과 View 이름을 통일하여 사용해야한다.
4. Object
RequestToViewNameResolver를 통해 자동생성되는 View 이름이 사용된다.
5. @ResponseBody
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "<html><body><h1>Hello, ResponseBody!</h1></body></html>";
}
}
@ResponseBody가 메소드레벨에 부여되는 경우, 메소드가 리턴하는 오브젝트는 View를 통해 결과를 만들어 내는 모델로 사용되는 대신, 메시지 컨버터를 통해 바로 HTTP 응답의 메시지 본문으로 전환된다.
return 값이 단일 모델 오브젝트이고 메시지 컨버터가 View와 같은 방식으로 동작한다.
'Skill > spring' 카테고리의 다른 글
[spring] Controller parameter에 따른 ajax 호출 변화 (0) | 2020.12.10 |
---|---|
[mybatis] <include>에 parameter 넘기기 (0) | 2020.12.08 |
[java] 변수명 camel형으로 변경 (0) | 2020.11.17 |
[spring] build시 에러 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? (0) | 2020.11.11 |
[spring] 파일 업로드 (0) | 2020.11.05 |
- Total
- Today
- Yesterday
- Keycode
- oracle
- object key
- 프로젝트명변경
- @ExceptionHandler
- $.each
- 여러 컬럼 update
- devtools
- $.extend
- element위치
- DatePicker
- Javascript
- JQuery
- CSS
- springboot
- 진열사랑
- getter
- caniuse
- excel
- QueryDSL
- PostgreSQL
- spring
- 정규식
- border-collapse
- lombok
- sumifs
- draw.io
- 전후방탐색
- ul li로 테이블
- setter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |