以下 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/