Coding Planet
SPRING MVC - ๋ทฐ ๋ฆฌ์กธ๋ฒ (View Resolver) ๋ณธ๋ฌธ
๋ฐ์ํ
| View Resolver๋
๋ทฐ ๋ฆฌ์กธ๋ฒ๋ ์คํ๋ง MVC ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ค์ํ ์ปดํฌ๋ํธ ์ค ํ๋์ด๋ค. MVC ํจํด์์ ์ปจํธ๋กค๋ฌ๊ฐ ์ฒ๋ฆฌ๋ฅผ ๋ง์น ํ์ ์ด๋ค ๋ทฐ๋ก ์๋ต์ ์์ฑํ ์ง ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค.
| View Resolver์ ์ญํ
- ๋ทฐ ์ด๋ฆ์ ๋งคํ : ์ปจํธ๋กค๋ฌ๋ ํน์ ๋ทฐ๋ฅผ ์๋ณํ๊ธฐ ์ํด ๋ฌธ์์ด ํํ์ ๋ทฐ ์ด๋ฆ์ ๋ฐํํ๋ค. ๋ทฐ ๋ฆฌ์กธ๋ฒ๋ ์ด ์ด๋ฆ์ ์ค์ ๋ทฐ ํ ํ๋ฆฟ ํ์ผ๋ก ๋งคํํ๋ค. ์๋ฅผ ๋ค์ด ์ปจํธ๋กค๋ฌ๊ฐ "home"์ด๋ผ๋ ๋ทฐ ์ด๋ฆ์ ๋ฐํํ๋ฉด, ๋ทฐ ๋ฆฌ์กธ๋ฒ๋ ์ด๋ฅผ "home.jsp"๋ "home.html"๊ฐ์ ์ค์ ํ์ผ๋ก ๋ณํํ ์ ์๋ค.
- ๋ค์ํ ๋ทฐ ๊ธฐ์ ์ง์ : ์คํ๋ง MVC๋ ๋ค์ํ ๋ทฐ ๊ธฐ์ ์ ์ง์ํ๋ฉฐ ์ด๋ฅผ ์ํด ์ฌ๋ฌ ๋ทฐ ๋ฆฌ์กธ๋ฒ๋ฅผ ์ฌ๊ณตํ๋ค. JSP, Thymeleaf, FreeMarker ๋ฑ ๋ค์ํ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
| ์ฃผ์ View Resolver
- InternalResourceViewResolver: JSP์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ทฐ ๋ฆฌ์กธ๋ฒ. ์ ๋์ฌ์ ์ ๋ฏธ์ฌ๋ฅผ ์ค์ ํ์ฌ ๋ฐํ๋ ๋ทฐ ์ด๋ฆ ์๋ค์ ํน์ ๋ฌธ์์ด์ ์ถ๊ฐํ ์ ์๋ค.
- UrlBasedViewResolver: URL ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฆฌ์กธ๋ฒ
- ResourceBundleViewResolver: ๋ทฐ ์ค์ ์ ๋ณด๋ฅผ ํ๋กํผํฐ ํ์ผ์ ์ ์ฅํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฆฌ์กธ๋ฒ
- XmlViewResolver: ๋ทฐ ์ค์ ์ ๋ณด๋ฅผ XML ํ์ผ์ ์ ์ฅํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ทฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฆฌ์กธ๋ฒ
- BeanNameViewResolver: ๋ทฐ์ ๋น ์ด๋ฆ์ ์ง์ ์ฌ์ฉํ์ฌ ๋ทฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฆฌ์กธ๋ฒ
- ContentNegotiatingViewResolver: ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ด์ฉ(์: Accept ํค๋)์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ํ ๋ทฐ๋ฅผ ์ ํํ๋ ๋ฆฌ์กธ๋ฒ
| ์์ : UrlBasedViewResolver
@Bean
public UrlBasedViewResolver urlBasedViewResolver() {
UrlBasedViewResolver urlBasedViewResolver = new UrlBasedViewResolver();
urlBasedViewResolver.setOrder(1);
urlBasedViewResolver.setViewClass(JstlView.class);
urlBasedViewResolver.setPrefix("/WEB-INF/jsp/sharon/pj/");
urlBasedViewResolver.setSuffix(".jsp");
return urlBasedViewResolver;
}
- setOrder(1):
- ์ฌ๋ฌ ๋ทฐ ๋ฆฌ์กธ๋ฒ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ์ด ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฆฌ์กธ๋ฒ๊ฐ ๋จผ์ ์๋๋๋์ง ๊ฒฐ์ ํ๋ค. ๊ฐ์ด ์์์๋ก ๋จผ์ ์๋๋๋ค.
- setViewClass(JstlView.class):
- ์ฌ์ฉํ ๋ทฐ ํด๋์ค๋ฅผ ์ค์ ํ๋ค. ์ฌ๊ธฐ์๋ JstlView ํด๋์ค๊ฐ ์ฌ์ฉ๋๋ค. ์ด ํด๋์ค๋ JSTL ํ๊ทธ๋ฅผ ์ง์ํ๋ JSP๋ฅผ ๋ ๋๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- setPrefix("/WEB-INF/jsp/sharon/pj/"):
- ์ด ์ค์ ์ ๋ฐํ๋ ๋ทฐ ์ด๋ฆ ์์ ์ถ๊ฐ๋๋ ์ ๋์ฌ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ปจํธ๋กค๋ฌ์์ "home"์ด๋ผ๋ ๋ทฐ ์ด๋ฆ์ ๋ฐํํ๋ฉด ์ค์ JSP ํ์ผ์ ๊ฒฝ๋ก๋ /WEB-INF/jsp/sharon/pj/home.jsp๊ฐ ehls๋ค.
- setSuffix(".jsp"):
- ์ด ์ค์ ์ ๋ฐํ๋ ๋ทฐ ์ด๋ฆ ๋ค์ ์ถ๊ฐ๋๋ ์ ๋ฏธ์ฌdl๋ค. ์ ๋์ฌ์ ํจ๊ป ์ฌ์ฉ๋์ด ์ค์ JSP ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ .
๋ฐ์ํ
'๐ฑSPRING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments