程序化Servlet 3.0 JSP jsp-property-group配置

时间:2015-03-26 21:50:13

标签: java java-ee servlet-3.0

我可以在ServletContainerInitializer中创建servlet和过滤器,但是是否可以将旧的web.xml的最后剩余部分转换为Servlet 3.0程序化配置?

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>

1 个答案:

答案 0 :(得分:0)

Servlet 3.x仅为JSP设置指定 reading 接口。

编写 JSP设置,需要访问JSP引擎实现或继续使用web.xml。后者不是大问题,因为web.xml可以安全地与ServletContainerInitializer共存。因此建议您保留web.xml

但这是Spring Boot的一个问题,它忽略了web.xml

对于带有嵌入式 Tomcat Spring Boot 2 ,可以使用TomcatContextCustomizer来实现:

@Component
public class JspConfig implements TomcatContextCustomizer {
    @Override
    public void customize(Context context) {
        JspPropertyGroup pg = new JspPropertyGroup();
        pg.addUrlPattern("/*");
        pg.setPageEncoding("UTF-8");
        pg.setTrimWhitespace("true");
        ArrayList<JspPropertyGroupDescriptor> pgs = new ArrayList<>();
        pgs.add(new JspPropertyGroupDescriptorImpl(pg));
        context.setJspConfigDescriptor(new JspConfigDescriptorImpl(pgs, new ArrayList<TaglibDescriptor>()));
    }
}