A slight deviation. The bean support field does not have to be logical. If you had bean support with fields:
private List<SelectItem> myStringList; private String myString;
then you initialize myStringList like this before loading the form:
myStringList = Arrays.asList(new SelectItem("one", "The Number One"), new SelectItem("two", "The number two") );
then you can do this:
<h:form> <p:selectOneRadio id="ctlSearchType" value="#{mybean.myString}" layout="grid" columns="3"> <f:selectItems value="#{mybean.myStringList}" /> <p:ajax event="change" update="ctlone,ctltwo"/> </p:selectOneRadio> <h:panelGrid id="panelId" style="border:solid 1px black;" > <p:outputLabel for="ctlone" value="Field one:"/> <p:inputText value="#{mybean.whatever}" id="ctlone" size="8" maxlength="10" disabled="#{mybean.myString eq 'one'}"/> <p:outputLabel for="ctltwo" value="Field two:"/> <p:inputText value="#{mybean.whatevertwo}" id="ctltwo" size="8" maxlength="10" disabled="#{mybean.myString eq 'two'}"/> </h:panelGrid> </h:form>
source share