【发布时间】:2013-01-13 19:15:36
【问题描述】:
我在组件内显示静态图像资产,直到运行时我才知道该图像应该是什么,因此我需要动态生成 URL。这些图片都住在webapp/images/
The documentation I found 对如何处理这个用例不是很清楚,但是在玩弄之后我发现我可以像这样在组件模板中动态构造 URL:
<img src="${context:img/score/overall}/${imageFilename}" />
然后将显示哪张图片的逻辑放到组件类文件中:
public String getImageFilename() {
// decide which image to display and return the filename
}
所以这可行,但它不是最干净的解决方案。我真的不想将 URL 基连接到模板内的文件名 - 我更愿意在组件类中构造整个 URL,如下所示:
<img src="${imageUrl}" />
和
public String getImageURL() {
// build URL somehow like "context:" + "filePath" in template
}
所以我的问题是:模板中是否有与 context: ... 等效的 Java 代码,它只是为我可以将文件路径附加到的 web appl 上下文文件夹生成一个字符串基本 URL?
我可以从阅读文档中看到一些明显的 hacky 方法,例如使用所描述的方案手动构建基本 URL,或者从 web 应用程序上下文文件夹中注入已知的静态图像作为 Asset 并调用 @987654331 @ 提取基本 URL。但似乎在 Java 中必须有一个很好的内置方法来执行此操作,特别是因为它可以免费用于模板扩展。
但是我可能会在谷歌上搜索,我似乎无法在任何地方找到如何做到这一点!
【问题讨论】:
-
我确实找到了,但只有在知道要寻找什么之后!似乎有关这方面的简短段落可以添加到this page,这是每个关于资产的谷歌都引导我的地方。当我有时间时,我什至可以自己贡献它!