在由@ResourceDependency加载的Javascript文件中获取EL

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

在我的Javascript文件中,我需要引用另一个资源文件(.swf文件,位于META-INF / resources中,如JSF所要求的).我试着在我的javascript代码中放入一个#{resource [‘swf:file.swf’]} EL表达式,但它不会得到解决.

为了exacmle,对于服务器中的以下JS文件:

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

浏览器得到:

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

这是错的.

当我在CSS文件中放入相同的EL时,它会得到正确解析.对于服务器中的以下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.虽然第一个解决方案是最容易实现的,但我建议你选择第三个,在我看来,这是正确的方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)