使用转换器在popuppanel和selectonemenu中出现问题

时间:2014-02-05 12:11:05

标签: java-ee jsf-2 richfaces ajax4jsf popuppanel

我在我的表格中有一个丰富的POPUPPANEL有一个问题我有一个带转换器的selectonemenu如果我用面板网格以简单的形式制作组件但是当我在popuppanel上制作时,selectonemenu的值不会发送到我的bankingbean我觉得它是空的

我尝试了一个多技巧但没有结果

所以我的代码在视图中.xhtml

<h:form>
<rich:popupPanel id="piecePanel" autosized="true" width="500"
    domElementAttachment="form" header="Modifier">
    <a4j:outputPanel>
        <b><h:messages style="color: red;" /></b>
    </a4j:outputPanel>
    <rich:panel>
        <h:panelGrid columns="3">
            <h:outputText value="Piece *"></h:outputText>

            <h:selectOneMenu converter="#{GenericConverter}"
                value="#{pieceBean.piece}">
                <f:selectItem itemLabel="" />
                <f:selectItems value="#{listBean.selectPiece}" />

            </h:selectOneMenu>

            <a4j:commandButton action="#{pieceBean.affectpiece2Vehicule}"
                limitRender="true" render="tablePiece"
                onclick="#{rich:component('waitFormPanel')}.show()"
                oncomplete="#{rich:component('waitFormPanel')}.hide()"
                value="affecter" />
        </h:panelGrid>


    </rich:panel>

    <rich:panel>
        <rich:dataTable id="tablePiece" value="#{pieceBean.piecesByVehicule}"
            var="dataItem" rows="12">

            <rich:column>
                <f:facet name="header">
                    <h:panelGroup>
                        <h:outputText value="prix" />
                    </h:panelGroup>
                </f:facet>


                <h:outputText value="#{dataItem.piece.prix}" />
            </rich:column>

            <rich:column>
                <f:facet name="header">
                    <h:panelGroup>
                        <h:outputText value="action" />
                    </h:panelGroup>
                </f:facet>
                <a4j:commandButton action="#{pieceBean.disaffectpiece}"
                    limitRender="true" render="tablePiece" execute="@this"
                    onclick="#{rich:component('waitFormPanel')}.show()"
                    oncomplete="#{rich:component('waitFormPanel')}.hide()"
                    styleClass="ajoutBtn" value="desaffecte">
                    <f:setPropertyActionListener value="#{dataItem}"
                        target="#{pieceBean.currentPieceVehicule}" />
                </a4j:commandButton>
            </rich:column>
        </rich:dataTable>

    </rich:panel>



</rich:popupPanel>

1 个答案:

答案 0 :(得分:0)

你面临的问题有多丰富:popupPanel是在页面上生成的,当你试图通过firebug在页面上找到他的ID时,你会发现它在客户端上不再存在,而是在表单之外生成的! 唯一的解决方案是确保h:form始终位于rich:popupPanel内部。请尝试让我知道。