我有一个带有以下selectOneRadio定义的JSF页面:
<p:outputPanel id="customPanel" style="margin-bottom:10px">
<p:selectOneRadio id="customRadio" layout="custom" required="true" >
<f:selectItem itemLabel="Número de Documento" itemValue="0" />
<f:selectItem itemLabel="Nombre(s)" itemValue="1" />
<f:selectItem itemLabel="Estado" itemValue="2" />
</p:selectOneRadio>
<h:panelGrid columns="3" cellpadding="5">
<p:radioButton for="customRadio" itemIndex="0" />
<h:outputLabel for="txtNroDocumento" value="Número de Documento" />
<p:inputText id="txtNroDocumento" value="#{empleadoMb.empleado.nroDocumento}"/>
<p:radioButton id="txtNombre" for="customRadio" itemIndex="1" />
<h:outputLabel for="txtNombre" value="Nombre(s)" />
<p:inputText />
<p:radioButton id="txtEstado" for="customRadio" itemIndex="2" />
<h:outputLabel for="txtEstado" value="Estado" />
<h:selectOneMenu value="#{empleadoMb.busqueda}">
<f:selectItem itemLabel="Seleccionar" itemValue="-1"/>
<f:selectItems value="#{empleadoMb.listaEstado}" var="st" itemValue="#{st.idParametro}" itemLabel="#{st.dato}"/>
</h:selectOneMenu>
</h:panelGrid>
</p:outputPanel>
控制器是ManagedBean。我需要知道的是,当我选择一个单选按钮时,如何根据它的身份证,姓名或状态创建员工列表。 我一直在我的支持bean即兴创作,但它不起作用。
答案 0 :(得分:0)
首先,你的selectOneRadio需要一个值和ajax,你的selectOneMenu需要一个id:
<p:selectOneRadio "#{empleadoMb.radioValue}" id="customRadio" layout="custom" required="true" >
<f:selectItem itemLabel="Número de Documento" itemValue="0" />
<f:selectItem itemLabel="Nombre(s)" itemValue="1" />
<f:selectItem itemLabel="Estado" itemValue="2" />
<p:ajax listener="#{empleadoMb.radioValueChanged()}" update="selectMenu" />
</p:selectOneRadio>
<h:selectOneMenu id="selectMenu" value="#{empleadoMb.busqueda}">
<f:selectItem itemLabel="Seleccionar" itemValue="-1"/>
<f:selectItems value="#{empleadoMb.listaEstado}" var="st" itemValue="#{st.idParametro}" itemLabel="#{st.dato}"/>
</h:selectOneMenu>
在你的bean中,你可以在监听器中处理你的列表:
private int radioValue;
public void radioValueChanged(){
// your current value is in the variable radioValue now, you can change your list depending on the value here, the update in the p:ajax will refresh the selectOneMenu after that.
}
//getter + setter for radioValue