我想访问资源地图,而不是像
中那样访问我的CCS文件background-image: url("#{resource['primefaces-supertheme:images/ui-icons_ffffff_0.png']}");
但是来自我的豆子。是否只能进行EL评估?
答案 0 :(得分:6)
真正的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']}");
// ...