java - 无法读取 JSP 中的属性文件

标签 java jsp properties stream classpath

以下 JUnit 测试在我的应用程序中运行:

@Test
public void testMessageResources(){
    final InputStream stream = getClass().
        getResourceAsStream("/com/service/MessageResources.properties");
    Assert.assertNotNull(stream);
}

但是在我的 JSP 中,我无法使用以下代码读取文件:

<%
    final InputStream resourceAsStream = application.
        getResourceAsStream("/com/service/MessageResources.properties");
%>

resourceAsStream 始终为 null。我正在使用 JSP 2.1。


MessageResources.properties 文件在类路径中,但在 JSP 目录中。这是个问题吗?

最佳答案

JSP 使用 ServletContext.getResourceAsStream() ,它做的事情与 Class.getResourceAsStream() 不同。它不会在类路径中搜索资源。如果要使用 Class.getResourceAsStream(),请使用 Class.getResourceAsStream()。它还可以在 Java EE 上下文中工作。只需确保使用与要用于加载属性文件的类加载器相同的类加载器加载的类即可。

不过,这样的方法调用不应在 JSP 中完成,而应在转发到 JSP 的 Servlet 或操作中完成。 JSP 应该用于生成标记。

关于java - 无法读取 JSP 中的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709627/

相关文章:

database - 通过运行另一个 applescript 来更改一个 applescript 中的属性?

java - JSF Converter oneSelectMenu 空指针异常

java - 文件名验证

java - 我们如何告诉 jQuery 访问 Java Servlet 中的 Java 数组列表?

java - 在名为 xx 的 DispatcherServlet 中未找到具有 URI xxx 的 HTTP 请求的映射

Java JSP Jquery AJAX Servlet

java - 为什么 Spring 会尝试使用属性变量引用字符串而不是值?

java - 从列表中创建玩家团队

java - 我们可以为 HashMap<K,V> 中的 K 分配什么类型?

javascript - 如果没有在 JS 或 CSS 中的任何地方指定该属性,我如何找到 JS 样式属性的值?