6

次のように CCS ファイルからではなく、リソース マップにアクセスしたい

background-image: url("#{resource['primefaces-supertheme:images/ui-icons_ffffff_0.png']}");

しかし、私の豆から。EL評価のみで可能ですか?

4

1 に答える 1

8

真の Java バリアントは次のようApplication#createResrouce()になりResource#getRequestPath()ます。

FacesContext context = FacesContext.getCurrentInstance();
Resource resource = context.getApplication().getResourceHandler().createResource("images/ui-icons_ffffff_0.png", "primefaces-supertheme");
String url = resource.getRequestPath();
// ...

ELをプログラムで評価できることに注意してください。これに使えますApplication#evaluateExpressionGet()

FacesContext context = FacesContext.getCurrentInstance();
String url = context.getApplication().evaluateExpressionGet(context, "#{resource['primefaces-supertheme:images/ui-icons_ffffff_0.png']}", String.class);
// ...

JSF ユーティリティ ライブラリ OmniFaces を使用する場合は、次のようにFacesユーティリティ クラスを介して簡略化できます。

String url = Faces.evaluateExpressionGet("#{resource['primefaces-supertheme:images/ui-icons_ffffff_0.png']}");
// ...
于 2013-09-24T14:53:44.540 に答える