Intellij 에서 spring boot + jsp 설정
2018.12.01 17:05
Intellij 에서 spring boot + jsp 설정
Intellij는 흔히 쓰는 eclipse와 프로젝트가 구조가 다르다.
그렇기 때문에 spring boot의 embedded servlet container를 사용해서 띄울 경우 jsp resolve가 되지 않아 화면을 볼 수 없게 된다.
spring boot reference에서는 가능하면 intellij에서는 spring boot + jsp 조합을 사용하지 않기를 추천하고 있지만, 일하다보면 뜻대로 되지는 않는다.
1. pom.xml 설정
spring boot의 embedded servlet container를 사용하기 위해서는 "spring-boot-starter-tomcat" 가 필요하고, JSP 사용을 위해서는 "tomcat-embed-jasper", "jstl" 가 필요하다.
org.springframework.boot spring-boot-starter-tomcat provided org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet jstl
2. WebConfiguration.java 설정
application.properties의 "spring.mvc.view.prefix", "spring.mvc.view.suffix" 는 예약어로 spring boot가 자동으로 설정을 해주지만, 본인의 경우에는 자동으로 올라오지 않아서 Environment 를 통해 직접 찾아서 넣어줬다.
@Configuration @EnableWebMvc public class WebConfiguration extends WebMvcConfigurerAdapter { @Autowired private Environment environment; @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); internalResourceViewResolver.setPrefix(environment.getProperty("spring.mvc.view.prefix")); internalResourceViewResolver.setSuffix(environment.getProperty("spring.mvc.view.suffix")); return internalResourceViewResolver; } }
3. 외부 라이브러리 설정
embedded servlet container를 이용해서 spring boot application을 실행한 경우 실행은 되지만, 이후에 jsp rendering이 되지 않는 문제가 발생한다.
이때 was library 참조에 문제가 있다고 생각되어 외부 라이브러리로 was lib 디렉토리를 모두 포함하도록 해주었다.
프로젝트 선택 후 F12 -> Modules -> Dependencies -> "+" -> $CATALINA_HOME/lib 디렉토리 추가 -> apply
출처: http://thdghgns.tistory.com/3 []
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.