Yon*_*tan 7 javascript java el jsf-2
我@ResourceDependency在JSF组件中使用注释将Javascript和CSS文件添加到我的JSF页面中.
在我的Javascript文件中,我需要引用另一个资源文件(.swf文件,位于META-INF/resources中,如JSF所要求的).我试图#{resource['swf:file.swf']}在我的javascript代码中放置EL表达式,但它不会得到解决.
为了exacmle,对于服务器中的以下JS文件:
var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
Run Code Online (Sandbox Code Playgroud)
浏览器得到:
var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
Run Code Online (Sandbox Code Playgroud)
这是错的.
当我在CSS文件中放入相同的EL时,它会得到正确解析.对于服务器中的以下CSS文件:
.instance-css-class {
background: url("#{resource['swf:file.swf']}")
}
Run Code Online (Sandbox Code Playgroud)
浏览器得到:
.instance-css-class {
background: url("/webapp/javax.faces.resource/file.swf.jsf?ln=swf")
}
Run Code Online (Sandbox Code Playgroud)
这正是我需要的,但在JS文件中.
显然,我可以使用CSS作为问题的解决方法(创建一个DOM元素,将CSS类附加到它,然后读取并解析所需的样式属性).但是,是否有更优雅的方式来实现它?它是JSF库中的一个错误(我使用Mojarra 2.0.3,使用Jboss 6.1),还是有这种行为的原因?
请介意上面的代码是一个标签库的一部分,所以解决方法,例如那些无法使用.
编辑 - 似乎CSS解决方法不可行,因为我看不到从CSS文件获取CSS属性的方法.因此,任何(工作)解决方案也将很乐意接受.
| 归档时间: |
|
| 查看次数: |
815 次 |
| 最近记录: |