我们想知道如果可以在facelets中的javascript方法中获取托管bean属性值,或者将javascript值传递给托管bean属性但不使用隐藏标记?
当我们搜索它们时,我们看到的是关于使用html隐藏标记或隐藏按钮的点击事件的示例或解决方案。但是当我们需要在managedbean和javascript之间进行大量数据交换时,这种方法对我们没用,因为它需要大量的隐藏标签。
答案 0 :(得分:3)
您可以像在地图中一样创建具有名称值对的json对象,并将它们作为请求参数发送。您可以使用{j}函数调用p:remoteCommand
,如下所示
function sendParams() {
passToJSFManagedBean ([ {
name : 'sno',
value : 1
},
{
name : 'name',
value : srikanth
}
]);
}
以上passToJSFManagedBean
应该是远程命令函数的名称,如下所示
<p:remoteCommand name="passToJSFManagedBean" id="passToJSFManagedBeancmd"
action="#{myBean.getParams}"
process="@this" />
您可以访问托管bean操作中传递的参数
public void getParams() {
String sno= FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
.get("sno");
//same way you can get name
}
希望这有帮助