当前位置: 首页 > 知识库问答 >
问题:

如何在JSF中以编程方式获取资源映射?

姚凯歌
2023-03-14

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

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

但从我的豆子。只有EL评估可能吗?

共有1个答案

海信鸥
2023-03-14

真正的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']}");
// ...
 类似资料:
  • 问题内容: 我有以下目录布局: src main Java resources SQL (database script) Spring (configuration) network application 在ServletContextListener类中,我想访问SQL目录下的文件并列出它们。基本上我的问题是路径,因为我知道简而言之列出目录下的文件是: 也许我可以使用Object尝试建立路径

  • 我有以下目录布局: src 主 Java 资源 SQL(数据库脚本) Spring(配置) 是否存在以相对的、非硬编码的方式设置该路径的方法?类似于(如果可能,最好是spring)或如何使用servletContext来指向?

  • 问题内容: 我想从受监视的应用程序内部以编程方式获得等效的输出。我看到可以通过HotSpot诊断Bean触发二进制堆转储,但是我看不到如何获取直方图数据。可能吗 ? 问题答案: 这可能是不是最好的例子/代码,但看看这个 (我认为这仅适用于Hotspot JVM)

  • 问题内容: 基本上,我想获取python解释器的句柄,以便可以传递脚本文件来执行(从外部应用程序执行)。 问题答案: 这适用于Linux和Windows: Python 3.x Python 2.x

  • 我想测试我的控制器 在这里,我需要硬编码,比如 其中取决于我应用于控制器类的注释及其方法。 但是我能用类名和方法名以编程方式派生它吗?

  • 问题内容: 有谁知道如何在JBossAS 5.1下以编程方式获取服务器版本号? JBossAS 4.2具有,和和方法,但是在5.1中似乎不存在。 问题答案: 最后,我选择从JBoss 4.2中反编译该类,以查看其作用,并查看结果是否可以改装到JBoss 5中。最终结果是将资源加载到对象中,然后读出and 属性。从那开始。让我感到困惑的是,为什么他们不能只把课程留在那里,而是在那里。