通过ajax /重新读取jsf-bean值重新加载JavaScript函数

时间:2014-11-05 16:06:04

标签: javascript ajax jsf

我有一个JavaScript函数,它使用来自辅助bean的值,如var x = #{bean.value}

在页面加载时,x的值是最终的,直到重新加载页面为止(因为EL正在被其实际值字符串替换)。

但是,由于ajax请求,bean value可能会发生变化。 如何才能实现x更新?

这里是我的xml摘录(使用primefaces'日历组件)来澄清:

<p:calendar beforeShowDay="highlightDays" ... />

<script>
   function highlightDays(){
      var highlightedDays= #{bean.specialDays()};
      // set css...
   }
</script>

1 个答案:

答案 0 :(得分:1)

您可以使用RequestContext从bean执行此类更新:

RequestContext.getCurrentInstance().execute("highlightedDays = " + specialDays());

javascript变量应该在窗口范围内,这意味着你应该在函数范围之外定义var。

highlightedDays= #{bean.specialDays()};      
function highlightDays(){
  //make use of the var  
}