根据JSF中选定的<h:selectoneradio>选项渲染<p:outputpanel> </h:selectoneradio> </p:outputpanel>

时间:2014-02-06 14:53:25

标签: java jsf java-ee primefaces

我有两个小组:

<p:outputPanel id="contentDisplay">
<p:outputPanel id="dashboarddisplay">

我需要通过选择<p:outputPanel>按钮来呈现上面<h:selectOneRadio>中的任何一个。

以下是<h:selectOneRadio>的代码:

<h:selectOneRadio id="choice" style="width:100%"
                  value="#{Bean.selectedChoice}">
    <f:selectItem id="item1" itemLabel="Hours Allocation"   itemValue="1" />
    <f:selectItem id="item2" itemLabel="DashBoard" itemValue="2" /> 
    <p:ajax render="contentDisplay dashboarddisplay " execute="@this"
            update="contentDisplay dashboarddisplay" listener="#{cmpmBean.onChoiceSelect}" />    
</h:selectOneRadio>


如何将<f:selectItem>的选定值传递给辅助bean?

虽然触发了ajax事件但我无法获得辅助bean中变量“onChoiceSelect”的值。

任何建议都有助于解决此问题。

2 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

<p:outputPanel id="content">
    <p:outputPanel id="contentDisplay" rendered="#{Bean.selectedChoice eq 1}">
        ...A
    </p:outputPanel>
    <p:outputPanel id="dashboarddisplay" rendered="#{Bean.selectedChoice eq 2}">
        ...B
    </p:outputPanel>
</p:outputPanel>
<h:form>
    <h:selectOneRadio id="choice" style="width:100%"
                      value="#{Bean.selectedChoice}">
        <f:selectItem itemLabel="Hours Allocation" itemValue="1" />
        <f:selectItem itemLabel="DashBoard" itemValue="2" />  
        <p:ajax update=":content" />    
    </h:selectOneRadio>
</h:form>

答案 1 :(得分:0)

我尝试了以下代码并且它工作正常,我能够在支持bean中获取值。

<h:form>
                <h:panelGrid columns="3" cellpadding="2" style="width: 100%"
                    id="sysinfopan1">
                    <h:panelGroup>

                            <h:selectOneRadio id="choice" style="width:100%"
                                value="#{cmpmBean.selectedChoice}">
                                <f:selectItem itemLabel="Hours Allocation" itemValue="1" />
                                <f:selectItem itemLabel="CMPM DashBoard" itemValue="2" />
                        <p:ajax  render="contentDisplay dashboarddisplay"  update=":contentDisplay :dashboarddisplay"  execute="@this"  listener="#{cmpmBean.onChoiceSelect}" />
                            </h:selectOneRadio>

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

通过选择任一选项,两个输出面板都能正确呈现。