我的问题是,我想列出所有的图像 项目/ SRC /主/ web应用/图像
我知道如果我知道图像的名称,我可以像这样建立一个URL:
assetSource.getContextAsset(IMAGESLOCATION + imageName, currentLocale).toClientURL();
但是,如果我不知道所有的图像名称呢?
提前感谢您的答案!
答案 0 :(得分:3)
Web应用程序(以及tapestry)也不知道/关心文件的绝对路径,因为它可以部署在任何地方。 您可以通过调用HttpServletRequest的getRealPath来获取某个文件的绝对路径。
@Inject
private HttpServletRequest request;
...
// get root folder of webapp
String root = request.getRealPath("/");
// get abs path from any relative path
String abs = root + '/' + relPath;
不推荐使用HttpServletRequest的getRealPath,建议使用ServletContext.getRealPath,但获取ServletContext并不容易。
我更喜欢使用WebApplicationInitializer实现
public class AbstractWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// Here we store ServletContext in some global static variable
Global.servletContext = servletContext;
....
}
答案 1 :(得分:0)
您基本上需要能够读取给定文件夹中的文件。这是一些非常基本的代码,它将遍历文件夹中的所有文件:
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
}
// else, it's a directory
}
所有导入都应来自java.io
package。