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

Reload JavaScript function via ajax / re-read jsf-bean value

本文关键字:新读取 读取 jsf-bean JavaScript ajax 加载 通过 新加载 函数      更新时间:2023-09-26

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

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

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

以下是我的xml摘录(使用primefaces的日历组件),以澄清:

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

您可以使用RequestContext从bean执行这样的更新:

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

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

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