2014-11-05 84 views
0

我有一個JavaScript函數,它使用來自backing bean的值,如var x = #{bean.value}通過ajax重新加載JavaScript函數/重新讀取jsf-bean的值

在頁面加載時,x的值是最終的,直到頁面正在重新加載(因爲EL被其實際值字符串替換)。

但是,由於ajax請求,bean的value可能會更改。 我怎樣才能達到x得到更新?

這裏的(使用primefaces'日曆組件)從我的XML的摘錄,以澄清:

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

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

回答

1

可以使用RequestContext的做從bean這樣的更新:

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

而JavaScript變量應該在窗口範圍內,這意味着您應該在函數範圍之外定義var。

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