如何在JSF中隐藏/显示selectOneMenu?

时间:2015-06-23 04:53:21

标签: jsf jsf-2 primefaces

我应该隐藏表单加载inputText时有selectOneRadioselectOneRadio组件。当用户选择inputText时,我想显示selectOneRadio组件。我已将selectOneRadio隐藏在@PostConstruct中,该inputText应显示在选择<h:panelGrid id="panelgrid"> <p:panel id="panel" > <h:outputLabel value="Name: " for="name" /> <p:inputText id="name" value="#{userBean.name}" immediate="true"> <p:ajax event="onselect" update="city" listener="#{userBean.showName}" /> </p:inputText> <p:selectOneRadio id="city" value="#{userBean.city}" layout="grid" columns="3" rendered="#{userBean.displayName}" > <f:selectItems value="#{userBean.cities}" var="c" itemLabel="#{city}" itemValue="#{city}" /> </p:selectOneRadio> </p:panel> </h:panelGrid> 上。

@PostConstruct
public void init() {
    displayName = false;
}

public boolean isShowName() {
    return true;
}

...

bean代码如下:

{&{

但有些人如何不行。我正在使用JSF2.0和primefaces 5.2。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

<h:form id="frm">
    <h:panelGrid id="panelgrid">
        <p:panel id="panel" >
        <h:outputLabel value="Name: " for="name" />
            <p:inputText id="name" value="#{userBean.name}" immediate="true" onkeypress="#{userBean.showName}">

                <p:ajax event="change" update="frm:panelgrid" listener="#{userBean.inputcangeeListener}" />
            </p:inputText>
        </p:panel>


            <p:panel id="p2" rendered="#{userBean.displayName}">
                <p:selectOneRadio id="city" value="#{userBean.city}" layout="grid" columns="3">
                    <f:selectItems value="#{userBean.cities}" var="c" itemLabel="#{city}" itemValue="#{city}" />
                </p:selectOneRadio>
            </p:panel>

        </h:panelGrid>
    </h:form>

我的托管bean看起来像 -

    @PostConstruct
    public void init() {
        displayName = false;
    }

    public boolean isShowName(){
        return displayName;
    }

    public void inputcangeeListener(javax.faces.event.AjaxBehaviorEvent changeEvent){
        setDisplayName(true);
        cities = new ArrayList<>();
        cities.add("pune");
        cities.add("KOL");

    }

感谢您的回复。