我正在使用 Spring MVC 3.0 和 Tomcat。
我有一个 bean,它有一个属性,该属性的值应该是从 Web 文档根目录开始的路径。例如,我会在 Spring 配置文件中指定它的值,如下所示。
<bean id="myBean" class="com.stackoverflow.Bean">
<property name="path" value="/WEB-INF/foo.xml" />
</bean>
我要把这个值带到哪里才能读取文件? Spring/Spring MVC 是否提供一种透明的方式来访问文档根目录中的资源?
最佳答案
为了获得资源的真实路径,您需要访问 ServletContext
实现此目的的一种方法是让您的 com.stackoverflow.Bean 实现 ServletContextAware
接口(interface)。重新启动后,服务器应将 ServletContext 的实例移交给此 bean(您必须包含以下代码)
private ServletContext ctx;
public void setServletContext(ServletContext servletContext) {
ctx = servletContext;
}
最后,使用ctx.getRealPath(path)
获取资源的真实路径。
关于java - 从 Web 文档根访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189840/