728x90
반응형
Controller에서 String이 반환되면 view 이름을 찾아서 JSP를 렌더링 하고, view가 없으면 404를 반환합니다.
@RequestMapping("main")
public String main() {
return "main";
}
만약 method에 @ResponseBody 어노테이션이 적용되어 있다면 view를 찾지 않고, String 값을 그대로 반환합니다.
@ResponseBody
@RequestMapping("readUserNm")
public String readUserNm(UserVO param) throws Exception {
return userService.readUserNm(param);
}
Dispatcher Servlet이 ModelAndView를 반환하면 ViewResolver가 실행됩니다.
@RequestMapping("main")
public ModelAndView main(ModelAndView mav) throws Exception {
mav.setViewName("main");
return mav;
}
@ResponseBody가 있으면 Object는 MessageConverter가 실행되어 반환됩니다.
@ResponseBody
@RequestMapping("readUserNm")
public Object readUserNm(UserVO param) throws Exception {
return userService.readUserNm(param);
}
@ResponseBody가 있으면 MessageConverter가 실행되는데 null을 던지면 처리할 객체가 없어서 error가 발생합니다.
@ResponseBody
@RequestMapping("error")
public Object error() throws Exception {
return null; // error발생
}
Ajax로 값을 던졌는데 return값이 null일때는 계속 success가 아니라 error가 떨어져서 원인을 찾다 보니 MessageConverter 때문이었습니다.
하마터면 삽질한뻔 했네요 ㅎㅎ
728x90
반응형
'spring' 카테고리의 다른 글
[springboot] REST API 적용하기 (0) | 2020.10.14 |
---|---|
[springboot] MyBatis resultType이 Map일경우 key를 소문자로 만들기 (0) | 2020.10.14 |
[springboot] h2-console 접속이 안될 경우 문제 해결 (0) | 2020.10.14 |
[springboot] jar파일이 jsp경로를 못찾는 경우, intellij에서 war 빌드 (0) | 2020.10.11 |
[SpringBoot] Intellij(인텔리제이)에 SpringBoot(스프링부트) 프로젝트 시작하기 (0) | 2020.10.08 |
댓글