java - Tapestry 5.4 列出 webapp 文件夹中的所有图像

标签 java tapestry

我的问题是,我想列出所有位置的图像 项目/src/main/webapp/images

我知道如果我知道图像名称,我可以制作这样的 URL:

assetSource.getContextAsset(IMAGESLOCATION + imageName, currentLocale).toClientURL();

但如果我不知道所有图片的名称怎么办?

提前感谢您的回答!

最佳答案

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;
        ....
    }

关于java - Tapestry 5.4 列出 webapp 文件夹中的所有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620652/

相关文章:

javascript - Tapestry 5.3 如何使用按钮检索文本字段值但不提交表单

java - 我怎样才能把这个语句转换成三元呢?

java - 在 gin 中绑定(bind)生成的类

java - Java 程序中的字符串大小是否有限制?

java - 在 Tapestry 5 的网格中更改排序按钮的位置

Tapestry5页面渲染纯文本

java - Google guava 单例 Eventbus 多次触发

java - 解锁时锁定屏幕上的 SlidingTab 会振动 - 无论有关触觉反馈的全局设置如何

java - 将值从 javascript 传递到 Tapestry java

javascript - 是否有任何复杂的 UI 小部件可以与 Tapestry 很好地集成?