【发布时间】:2012-07-14 12:29:01
【问题描述】:
如果我想从 JavaScript 中评估一个 JSF bean 属性,我发现如果 JavaScript sn-p 在 xhtml 文件中它可以工作,但当 JavaScript sn-p 在单独的 js 文件中时它不起作用.
所以,这行得通:
index.xhtml
...
<h:body>
<script type="text/javascript" src="resources/Javascript/jquery/jquery-1.7.2.js" />
<script type="text/javascript" >
$(document).ready(function() {
alert('#{myBean.myProperty}');
});
</script>
</h:body>
但这不会评估 ManagedBean 的属性:
index.xhtml
...
<h:body>
<script type="text/javascript" src="resources/Javascript/jquery/jquery-1.7.2.js" />
<script type="text/javascript" src="resources/Javascript/MyJS.js" />
</h:body>
MyJS.js
$(document).ready(function() {
alert('#{myBean.myProperty}');
});
在第二种情况下,警告框包含未评估的字符串#{myBean.myProperty}
如何通过外部 js 文件使其工作?
【问题讨论】:
-
我认为你不能从外部 JS,作为一种解决方法,你需要将该值从 JSF 页面传递给 JS 函数,方法是像
functionName(#{value});一样调用它并在 JS 中做你想做的事像普通 JS 值一样的文件 -
谢谢,这很有意义!
-
您也可以将 .js 转换为 .jsp。 JSF API 中有一些方法允许您处理来自 java 代码的 EL 表达式。
-
老实说我更喜欢第一个建议,因为我想避免使用 JSP
标签: javascript jsf jakarta-ee el