Programmatic Servlet 3.0 JSP jsp-属性-组配置
Programmatic Servlet 3.0 JSP jsp-property-group configuration
我能够在我的 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>
Servlet 3.x 仅指定 reading 接口用于 JSP 设置。
要写入 JSP设置,需要访问JSP引擎实现,或者继续使用web.xml
。后者不是大问题,因为 web.xml
可以与 ServletContainerInitializer
安全共存。所以建议是保持 web.xml
.
然而,Spring 引导存在问题,它会忽略 web.xml
。
With Spring Boot 2 with an embedded Tomcat 可以使用 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>()));
}
}
我能够在我的 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>
Servlet 3.x 仅指定 reading 接口用于 JSP 设置。
要写入 JSP设置,需要访问JSP引擎实现,或者继续使用web.xml
。后者不是大问题,因为 web.xml
可以与 ServletContainerInitializer
安全共存。所以建议是保持 web.xml
.
然而,Spring 引导存在问题,它会忽略 web.xml
。
With Spring Boot 2 with an embedded Tomcat 可以使用 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>()));
}
}