コンポーネント内に静的な画像アセットを表示していますが、実行時までその画像がどうあるべきかわからないため、動的に URL を生成する必要があります。これらの画像はすべてwebapp/images/
私が見つけたドキュメンテーションは、このユースケースを処理する方法についてあまり明確ではありませんが、遊んだ後、次のようにコンポーネント テンプレートで 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: ...
。ファイル パスを追加できる Web アプリ コンテキスト フォルダーの文字列ベース URL を単純に生成する、テンプレートに相当する Java コードはありますか?
Asset
説明されているスキームを使用してベース URL を手動で構築する、またはWeb アプリのコンテキスト フォルダーから既知の静的イメージtoClientURL()
を挿入し、ベース URL を抽出するために呼び出しを行うなど、ドキュメントを読むことで明らかにハッキーな方法がいくつかわかります。しかし、特にテンプレート展開で自由に使用できるため、Java でこれを行うための優れた組み込みの方法が必要なようです。
しかし、グーグルで検索しても、どこでもこれを行う方法が見つからないようです!