gpt4 book ai didi

java - 在 Javascript 文件中获取 EL,由 @ResourceDependency 加载

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:00 27 4
gpt4 key购买 nike

我在 JSF 组件中使用 @ResourceDependency 注释将 Javascript 和 CSS 文件添加到我的 JSF 页面中。

在我的 Javascript 文件中,我需要引用另一个资源文件(一个 .swf 文件,根据 JSF 的要求,它位于 META-INF/resources 中)。我试图在我的 javascript 代码中放置一个 #{resource['swf:file.swf']} EL 表达式,但它不会得到解析。

例如,对于服务器中的以下 JS 文件:

var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");

浏览器获取:

var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");

这是错误的。

当我将相同的 EL 放入 CSS 文件时,它得到了正确解析。对于服务器中的以下 CSS 文件:

.instance-css-class {
background: url("#{resource['swf:file.swf']}")
}

浏览器获取:

.instance-css-class {
background: url("/webapp/javax.faces.resource/file.swf.jsf?ln=swf")
}

这正是我需要的,但在 JS 文件中。

显然,我可以使用 CSS 作为该问题的解决方法(创建一个 DOM 元素,将 CSS 类附加到它,然后读取和解析所需的样式属性)。但是,有没有更优雅的方法来实现它?它是 JSF 库中的错误(我使用的是 Mojarra 2.0.3 和 Jboss 6.1),还是存在这种行为的原因?

请注意,上面的代码是标签库的一部分,因此解决方法如 those无法使用。


编辑 - 似乎 CSS 解决方法不可行,因为我看不到从 CSS 文件获取 CSS 属性的方法。因此,任何(有效的)解决方法也将很乐意接受。

最佳答案

BalusC 已经详细回答了类似的问题here .虽然第一个解决方案最容易实现,但我建议您使用第三个,我认为这是正确的方法。

关于java - 在 Javascript 文件中获取 EL,由 @ResourceDependency 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com