从Web Document Root访问文件

Tom*_*ker 1 java spring tomcat spring-mvc

我正在使用Spring MVC 3.0和Tomcat.

我有一个bean,它有一个属性,其值应该是一个以Web文档根为根的路径.例如,我将在Spring配置文件中指定其值,如下所示.

<bean id="myBean" class="com.stackoverflow.Bean">
    <property name="path" value="/WEB-INF/foo.xml" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我在哪里取这个值,以便我可以读取文件?Spring/Spring MVC是否提供了一种透明的方式来访问文档根目录中的资源?

Mih*_*ria 5

为了获得资源的真实路径,您需要具有访问权限 ServletContext

实现这一目标的一种方法是制作您的com.stackoverflow.Bean implement ServletContextAware界面.重启后,服务器应该将一个ServletContext实例移交给这个bean(你必须包含以下代码)

private ServletContext ctx;
public void setServletContext(ServletContext servletContext) {
    ctx = servletContext;
}
Run Code Online (Sandbox Code Playgroud)

最后,用于ctx.getRealPath(path)获取资源的真实路径.