【发布时间】:2014-06-05 09:10:49
【问题描述】:
我在 xhtml 页面中有一个脚本元素,在这个脚本中,我尝试使用 EL 调用 bean 上的方法。我不明白为什么这个 EL 在页面渲染上被评估。 我正在使用 primeface 3.5 和 JSF 2.x。 这是代码
<h:form>
<p:socket channel="/channel" onMessage="handleMessage"></p:socket>
</h:form>
<script>
function handleMessage(data){
var update=data.update;
if(update){
#{bean.method()};
}
}
</script>
【问题讨论】:
-
已评估或未评估?请同时发布您的 bean 代码。
-
每次页面加载时都会调用 bean.method()
-
因为每次解析页面时都会评估 EL。否则,您可以(假设您的支持 bean 不是
request作用域)在bean.method()中创建一个标志以检查该方法是否至少被调用一次,并创建一个变量来保存该方法的返回值。
标签: javascript jsf jsf-2 primefaces