当我单击 p:tree 时如何从 p:ajax 侦听器获取其他组件值
Posted
技术标签:
【中文标题】当我单击 p:tree 时如何从 p:ajax 侦听器获取其他组件值【英文标题】:How to get other component value from p:ajax listener when I click on p:tree 【发布时间】:2015-09-07 04:49:14 【问题描述】:我有一个问题,我需要你的帮助!!!我想在单击树时获取 p:selectOneListbox 的选定值,但该值始终为空,即使我先单击 p:selectOneListbox 也是如此。这是我的 xhtml 代码:
<h:form>
<p:selectOneListbox id="selectRole"
value="#grandUseAuthoritiesBean.selectedRoleId"
filter="true" filterMatchMode="contains">
<f:selectItems value="#grandUseAuthoritiesBean.roleList"
var="role" itemLabel="#role.code" itemValue="#role.roleId" />
</p:selectOneListbox>
<p:tree value="#grandUseAuthoritiesBean.root"
selectionMode="single" var="node"
style="font-size:13px; width:100%;border-width:0">
<p:treeNode icon="ui-icon-calculator">
<h:outputText value="#node" />
</p:treeNode>
<p:ajax event="select" update="@([id$=privilegeChecbox])"
listener="#grandUseAuthoritiesBean.onNodeSelect()">
</p:ajax>
</p:tree>
</h:form>
这是我的管理 bean 的代码:
public String selectedRoleId;
public String getSelectedRoleId()
return selectedRoleId;
public void setSelectedRoleId(String selectedRoleId)
this.selectedRoleId = selectedRoleId;
public void onNodeSelect(NodeSelectEvent event)
if (selectedRoleId!=null)
System.out.println("selected Role Id: "+ this.selectedRoleId);
我无法打印变量“selectedRoleId”,因为它为空,但如果我使用按钮方法调用此变量,我可以获得它的值。我该怎么办?感谢您阅读我的问题!
【问题讨论】:
【参考方案1】:问题是当您从列表框中选择某些内容时,在您发送表单或进行部分发送之前,它在支持 bean 中是不可见的,因此为空值。将部分处理添加到<p:selectOneListbox>
并再次检查:
<p:ajax process="@this" partialSubmit="true" />
还有类似的话题: https://***.com/a/14988129/3803447
【讨论】:
以上是关于当我单击 p:tree 时如何从 p:ajax 侦听器获取其他组件值的主要内容,如果未能解决你的问题,请参考以下文章