【问题标题】:Use properties from a file outside WEB-INF使用 WEB-INF 外部文件的属性
【发布时间】:2015-12-09 17:26:51
【问题描述】:

我在 /src/main/resources 上有一个名为“message.properties”的文件,当我尝试访问 /WEB-INF 内任何 .jsp 文件中的数据时,它工作正常文件夹。

问题是:我有一个文件 (404.jsp) 放置在 /WEB-INF 文件夹外部,我想使用存储在 message.properties 中的密钥,但找不到它们,给我诸如“??? key.myKey ???

之类的错误
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages" />
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

如何 /WEB-INF 文件夹之外的文件访问属性文件?我尝试将基本名称更改为“../resoruces/”或类似的名称,但无法解决问题。

再说一遍:它适用于 WEB-INF 文件夹中的每个文件,问题仅在于 404.jsp

编辑:我无法通过添加 scriptlet 来解决它,因为在我的 404.jsp 中我有一些需要来自 message.properties 的相同键的包含

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/12686465/…
  • WEB-INF 文件夹中的页面是从DispatcherServlet 提供的,404 对这样的事情一无所知,因此对基于弹簧的增强一无所知。为什么不把 404 移到 WEB-INF 中,让DispatcherServlet 处理呢?
  • @M.Deinum 好吧,我认为标准是将 404.jsp 留在 WEB-INF 文件夹之外,因为每次 Spring 无法映射页面时,它都会回退到 404.jsp... 是如果我把它放在 WEB-INF 文件夹中会有什么影响吗?!

标签: java spring properties


【解决方案1】:

您可以将文件用于属性

FileInputStream fis = new FileInputStream("/your_path/test_properties.txt");
Properties prop = new Properties();
prop.load(fis);

【讨论】:

  • 那么,我将如何在我的 404.jsp 文件中访问它?如果可能的话,我想要一个不需要 java sn-p 的解决方案
  • @GabrielR。对不起,它是 java,你把它放在 之间并带有 import
  • 知道了,但还有其他方法吗?我想避免在我的 .jsp 文件上使用 java sn-ps :)
  • 然而,还有另一个问题......在我的 404.jsp 文件中,我包含了 WEB-INF 文件夹中的一些 jsp 文件,它们无法从属性@guillaume girod 加载密钥-vitouchkina
猜你喜欢
  • 2015-06-29
  • 2023-03-14
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多