JSP规范允许我使用.html
中的<jsp-config>
部分将web.xml
文件作为JSP服务(即,容器将它们作为JSP文件处理),例如:>
<web-app …>
<jsp-config>
<jsp-property-group>
<url-pattern>*.html</url-pattern>
</jsp-property-group>
</jsp-config>
</web-app>
但是,当我切换到运行带有嵌入式Tomcat的@SpringBootApplication
时,它将完全绕过web.xml
文件。 Spring Boot MVC中是否有等效设置可以按照标准web.xml
设置JSP属性组的JSP配置,该配置将配置现有嵌入式Tomcat JSP servlet?
(我可能要配置的JSP设置的另一个示例是<trim-directive-whitespaces>
。)
在将其标记为重复项之前,请仔细阅读。 我知道extensive answer by walkeros。但是,该答案仅考虑添加 new JSP servlet。它没有解决向现有 JSP servlet添加新的JSP属性组的问题,并且根本没有提及<jsp-config>
中的web.xml
部分。
答案 0 :(得分:0)
更新的答案:
spring-boot-starter-web
不依赖于web.xml
,因此您不能将两者结合使用。有一种将web.xml
与Spring Boot
结合使用的方式,即所谓的“传统”做事方式,以this sample project为例。似乎您只需要使用spring-boot-starter
和一个jsp / web框架(示例项目中的Spring MVC),并使用web.xml
进行servlet配置。
与spring-boot-starter-web
有关的原始答案(不适用于.html
文件):
要配置Spring Boot查找视图文件的方式,请在application.properties
中使用以下属性:
spring.mvc.view.prefix: /WEB-INF/views/
spring.mvc.view.suffix: .html
要查看Spring Boot支持的所有属性,请参见this link。跳至SPRING MVC
来查找与此案例相关的内容。
答案 1 :(得分:0)
您可能会找到一种使Spring Boot与XML配置一起使用的方法,但这不是应该的。 要将特殊的JSP配置应用于您的应用程序,您可以按照以下步骤进行操作:
public class MyJspConfigDescriptor implements JspConfigDescriptor {
private Collection<JspPropertyGroupDescriptor> jspPropertyGroups =
new LinkedHashSet<JspPropertyGroupDescriptor>();
private Collection<TaglibDescriptor> taglibs =
new HashSet<TaglibDescriptor>();
@Override
public Collection<JspPropertyGroupDescriptor> getJspPropertyGroups() {
JspPropertyGroup newPropertyGroup = new JspPropertyGroup();
newPropertyGroup.addUrlPattern("*.html");
// You can add more configurations as you wish!
JspPropertyGroupDescriptorImpl jspDescriptor = new JspPropertyGroupDescriptorImpl(newPropertyGroup);
jspPropertyGroups.add(jspDescriptor);
return jspPropertyGroups;
}
@Override
public Collection<TaglibDescriptor> getTaglibs() {
return taglibs;
}
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.getJspConfigDescriptor().getJspPropertyGroups().addAll((new MyJspConfigDescriptor()).getJspPropertyGroups());
}
我相信这会起作用,但是我并没有真正对其进行测试!