Spring boot jsp 和 application.yml

Posted

技术标签:

【中文标题】Spring boot jsp 和 application.yml【英文标题】:Spring boot jsp and application.yml 【发布时间】:2017-04-04 21:08:36 【问题描述】:

我为一个项目使用基于 application.yml 的 spring-boot。作为示例项目,我使用 https://github.com/ghillert/spring-boot-jsp-demo/blob/master/jsp-demo-tomcat/src/main/resources/application.properties 到目前为止效果很好。

我很勇敢地从 application.properties

更改设置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

不幸的是,更改属性后,示例不再起作用。是否可以像我在 application.yml 中那样配置给定的属性?或者我该如何配置设置?

【问题讨论】:

为什么不能使用 .yml 而不是 .properties? 该项目已经迁移到使用 yml 文件 :-( 并且它仅适用于 jsp 部分而不是 @TechBreak 不正是 OP 想要做的事情吗? @eis 我对文件名感到困惑。应用程序.properties @TechBreak - 在第一篇文章中我有一个拼写错误。 【参考方案1】:

    在 Spring-Boot 1.3 中,属性名称从 spring.view.prefix 更改为 spring.mvc.view.prefix。确保使用正确的名称。

    当您处于 Spring-Boot 独立模式时,还要确保对 org.apache.tomcat.embed:tomcat-embed-jasper 的依赖没有标记为 provided。否则 JspServlet 将不会在 TomcatEmbeddedServletContainerFactory 中注册为 Servlet-Mapping,因为它不在类路径中。

【讨论】:

【参考方案2】:

你需要在你的src/main/resources文件夹中创建application.yml文件(你的项目中现在有application.properties,需要删除),应该如下图:

spring: 
       mvc:
           view:
                prefix: /WEB-INF/jsp/
                suffix: .jsp

P.S.:确保缩进完全一样,否则如果你使用制表符,你会得到像 'found character '\t(TAB)' 这样的异常,不能开始任何标记。 (不要使用 \t(TAB) 进行缩进)'

【讨论】:

IDE 应该能够为您设置“制表符到空格”,因此使用 Tab 键应该没问题。【参考方案3】:

我认为您应该在这里使用弹簧功能,

即YamlPropertiesFactoryBean

YamlPropertiesFactoryBean 会将 YAML 作为属性加载。

如果有帮助,请查看此链接,

How to use YamlPropertiesFactoryBean to load YAML files using Spring Framework 4.1?

【讨论】:

就 Spring 而言,是的。然而,OP 正在使用 Spring Boot,supports YAML out of the box. @eis 同意,但如果没有选择资源,那么通过从类路径中显式放置所需文件可能会很方便?

以上是关于Spring boot jsp 和 application.yml的主要内容,如果未能解决你的问题,请参考以下文章

从零开始的Spring Boot(4Spring Boot整合JSP和Freemarker)

spring boot 知识点

spring boot thymeleaf和jsp可以共存吗

Spring Boot的配置文件

Spring boot jsp 和 application.yml

Spring Boot 属性配置