如何在不使用XHTML中的隐藏标记的情况下获取JavaScript中的bean属性值?

时间:2014-08-13 08:54:41

标签: javascript jsf primefaces portlet

我使用JSON和remotecommand将值传递给managedbean但是当我尝试在JavaScript中查看托管bean的值时,我看到默认值而不是更新的值。

我不想刷新页面或在XHTML中使用隐藏标签,因为我可能需要进行大量的数据交换。

当值改变时:

<script>
    var json= [ { name : 'zoom',  value : zoomLevel }  ];          
    sendParams(json);
</script>

在我的.js文件中我使用remotecommand:

function sendParams(jsonData) { 
    passToJSFManagedBean (jsonData);  
} 

在.xhtml中我调用了managedbean中的函数:

<p:remoteCommand name="passToJSFManagedBean" id="passToJSFManagedBeancmd" action="#{tagBean.setParams}" process="@this" /> 
托管bean中的

public void setParams() {
   this.zoom= Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("zoom")); 
   System.out.println("Zoom level: "+zoom); 
} 

然后我们可以看到传递托管bean的值。但是当我在js中尝试时,缩放值不会更新并具有默认值。

alert('#{tagBean.zoom}');

有没有办法在javascript中获取托管bean的属性而不使用xhtml中的隐藏标签?重要的是页面不需要刷新。是否可以使用remotecommand获取managedbean值?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

在primefaces中,通过requestContext我可以得到bean的属性。