728x90
기존 Sprin에서는 web.xml을 통해서 Jsp Config를 설정해야했다.
하지만 SpirngBoot부터는 SpringBootServletInitializer 상속 받은 클래스로 Jsp Config를 설정할 수 있다.
@Configuration
public class JspConfig extends SpringBootServletInitializer {
@Bean
public ConfigurableServletWebServerFactory configurableServletWebServerFactory() {
return new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
super.postProcessContext(context);
JspPropertyGroup jspPropertyGroup = new JspPropertyGroup();
jspPropertyGroup.addUrlPattern("*.jsp");
jspPropertyGroup.setPageEncoding("UTF-8");
jspPropertyGroup.setScriptingInvalid("false");
jspPropertyGroup.addIncludePrelude("/WEB-INF/jsp/common/taglib.jsp");
jspPropertyGroup.setTrimWhitespace("true");
jspPropertyGroup.setDefaultContentType("text/html");
JspPropertyGroupDescriptorImpl jspPropertyGroupDescriptor =
new JspPropertyGroupDescriptorImpl(jspPropertyGroup);
context.setJspConfigDescriptor(new JspConfigDescriptorImpl(
Collections.singletonList(jspPropertyGroupDescriptor), Collections.emptyList()));
}
};
}
}
- configurableServletWebServerFactory() : ConfigurableServletWebServerFactory를 반환한다. ConfigurableServletWebServerFactory 클래스는 서블릿 컨테이너를 설정하는 데 사용된다.
- postProcessContext(Context context) : Tomcat 서블릿 컨테이너의 설정을 변경하고 구성한다. Context 객체는 Tomcat의 웹 애플리케이션 컨텍스트에 대한 설정을 나타낸다.
- addUrlPattern("*.jsp") : 확장자가 .jsp인 JSP파일을 설정한다.
- setPageEncoding("UTF-8") : JSP의 인코딩을 UTF-8로 설정한다.
- addIncludePrelude("/WEB-INF/jsp/common/taglib.jsp") : JSP 페이지가 시작될 때 "/WEB-INF/jsp/common/taglib.jsp" 파일을 포함하도록 설정한다. 이 설정을 하지 않으면 모든 JSP 페이지마다 taglib을 포함하도록 설정해줘야한다. JSP 페이지에 공통적인 코드 블록을 포함시킬 때 많이 사용된다.
- setTrimWhitespace("true") : JSP 페이지에서 생성되는 HTML의 공백을 자동으로 제거한다.
- setDefaultContentType("text/html") : JSP 페이지의 기본 ContentType을 text/html로 설정한다
728x90