如何从WEB-INF目录中访问模板?

时间:2013-07-16 13:06:40

标签: file servlets spring-mvc load apache-poi

我需要在我的Spring MVC应用程序中读取MS-Excel(.xlsx),编辑它并按需将其发送给用户。在我的开发站本地,我使用

String path = "c:/dev/workspace/SCF-trend/web/WEB-INF/files/";
File template = new File(path + "trendline-template.xlsx");

但是一旦我部署了这个应用程序,我就放松了。

我该怎么做才能让应用程序了解路径?

我尝试使用ServletContext方法作为以下问题的答案,但它没有用。

Spring MVC Get file under WEB-INF without a request

我该如何解决这个问题?我们非常欢迎您的想法!

1 个答案:

答案 0 :(得分:1)

如果它是一个webapp资源,只需通过ServletContext#getResourceAsStream()将其作为webapp资源获取。

InputStream input = servletContext.getResourceAsStream("/WEB-INF/files/trendline-template.xlxs");
// ...

切勿在部署文件夹中使用java.io.File和朋友。这是可移植性问题和灾难的秘诀。

另见: