6

我想访问资源映射,而不是从我的 CCS 文件中

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

但来自我的豆子。是否可以仅进行 EL 评估?

4

1 回答 1

8

真正的 Java 变体是Application#createResrouce()then 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 回答