在selectOneMenu Primefaces中对项目进行分组

时间:2013-02-05 08:34:02

标签: java jsf jsf-2 primefaces selectonemenu

我决定在primefaces中的selectOneMenu中使用group selectItems并面临问题 我看到我的问题的决定How to group selectItems in selectOneMenu,但它对我没有帮助

当我使用<p:selectOneMenu>时,它不行并生成像这样的HTML

<div id="manageTournament:gender" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-helper-clearfix">
<div class="ui-helper-hidden-accessible"><select id="manageTournament:gender_input"
                                                 name="manageTournament:gender_input">
    <option value="">German Cars</option>
    <option value="">American Cars</option>
</select></div>

但是当我使用<h:selectOneMenu>时,没关系

<select id="manageTournament:gender" name="manageTournament:gender" size="1">
<optgroup label="German Cars">
    <option value="BMW">BMW</option>
    <option value="Mercedes">Mercedes</option>
    <option value="Volkswagen">Volkswagen</option>
</optgroup>
<optgroup label="American Cars">
    <option value="Chrysler">Chrysler</option>
    <option value="GM">GM</option>
    <option value="Ford">Ford</option>
</optgroup>
</select>

我的xhtml页面

<h:form id="manageTournament">
            <f:event type="preRenderView" listener="#{adminTournamentController.setConditions(false, 1)}"/>
            <p:wizard id="wizard" widgetVar="wiz" style="display: inline-block; width:600px;"
                      flowListener="#{adminTournamentController.onFlowProcess}" nextLabel="#{msg.next_button}" backLabel="#{msg.back_button}">

                <p:tab id="competitionId" title="#{msg.add_tournament}">
                    <p:panel header="#{msg.info_about_tournament}">
                        <h:panelGrid columns="3" olumnClasses="label, value" styleClass="grid">
<p:outputLabel value="#{msg.age_category}" for="gender_edit"/>
                            <p:selectOneMenu  id="gender_edit"
                                             value="#{adminTournamentController.genderAgeId}"
                                             rendered="#{not empty adminTournamentController.tournamentBean.teams}"
                                             disabled="true">
                                <f:selectItems value="#{adminTournamentController.genderAgeList}"/>
                            </p:selectOneMenu>

                            <p:selectOneMenu id="gender"
                                             value="#{adminTournamentController.genderAgeId}"
                                             rendered="#{empty adminTournamentController.tournamentBean.teams}">
                                <f:selectItems value="#{adminTournamentController.genderAgeList}"/>
                            </p:selectOneMenu>
                             </p:panel>
                </p:tab>
                <!-- others tabs -->          

            </p:wizard>
</h:form>

需要将selectOneMenu与分组一起使用,我找到其他文章OptionGroup-support for SelectOneMenu in Primefaces

但没有人帮助这个家伙。有可能解决我的问题吗?

1 个答案:

答案 0 :(得分:6)

我可以重现它。

enter image description here

这显然是PrimeFaces 3.4.2中的一个错误。它适用于本周发布的PrimeFaces 3.5

enter image description here

查看源代码(bean源代码与您找到的the answer中的相同):

<o:importConstants type="org.primefaces.util.Constants" var="PrimeFaces" />
<p>PrimeFaces version: #{PrimeFaces.VERSION}</p>
<h:form>
    <p:selectOneMenu>
        <f:selectItems value="#{bean.cars}" />
    </p:selectOneMenu>
</h:form>

在发布您找到的答案时,它对我有用,很可能是因为我当时正在使用3.5快照。