0

だから、私はこのようなデータテーブルを持っています:

<p:dataTable var="object" value="#{objectBean.objects}"
            paginator="true" rows="10" editable="true" id="tableObjects"

            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,15" style="border: 0px">

            <p:column sortBy="#{object.etc}">
                ..
            </p:column>

            ...

            <p:column sortBy="#{object.someValue}" id="sucessoColumn"
                headerText="Value">
                <p:cellEditor>
                    <f:facet name="output">

                        <h:outputText  value="#{object.someValue}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:selectOneMenu value="#{object.someValue}" effect="fade"
                            id="opt">
                            ...
                        </p:selectOneMenu>
                    </f:facet>
                </p:cellEditor>
            </p:column>



            <p:column id="bColumn" headerText="Options">

                <p:rowEditor />
            </p:column>
            <p:ajax event="rowEdit" listener="#{objectBean.update}"></p:ajax>

        </p:dataTable>

次のようなパラメーターを受け取るページで:

<f:metadata>
        <f:viewParam name="id" value="#{objectBean.object}"
            converter="#{objectConverter}" converterMessage="Converter error !"
            required="true" requiredMessage="Missing object !" />
    </f:metadata>

ページが読み込まれると、まったく問題はなく、すべて正常に動作します。しかし、次のページをクリックするか行を編集しようとすると、viewparam からの「必要なメッセージ」が表示されます。データテーブルの何かが変更されると、パラメータが消えるようです。

何か案は ?ありがとうございました。

4

2 に答える 2

0

問題は、使用していた Bean のスコープにありました。データテーブルの状態が変化するたびに、Bean に対して別の要求が行われるようです。リクエスト スコープの場合、パラメータは最初のリクエストでのみ使用可能でした。

ViewScope に変更すると、問題の半分が解決しました。データテーブルは正常に機能しましたが、メッセージは引き続き表示されます。「required」および「requiredMessage」属性を取得すると、問題の最後の部分が解決され、すべてが魅力的に機能しました。

于 2012-12-22T19:51:23.533 に答える