【问题标题】:Spring boot jsp and application.ymlSpring boot jsp 和 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 - 在第一篇文章中我有一个拼写错误。

标签: jsp spring-mvc spring-boot


【解决方案1】:
  1. 在 Spring-Boot 1.3 中,属性名称从 spring.view.prefix 更改为 spring.mvc.view.prefix。确保使用正确的名称。

  2. 当您处于 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 同意,但如果没有选择资源,那么通过从类路径中显式放置所需文件可能会很方便?
    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 2017-05-24
    • 2017-10-08
    • 2018-05-07
    • 2014-09-15
    • 2018-03-24
    • 2019-05-23
    • 2018-09-24
    相关资源
    最近更新 更多