3 java jsp properties classpath stream
以下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中完成,而应该在Servlet或JSP中执行.应该使用JSP来生成标记.