2

WebSphere ApplicationServer8のApacheMyfaces2でPrimefaces3.2を使用しています。

selectOneButtonを変更することで2つの異なるビューを選択できるフォームがあります。

このボタンをajaxの動作なしで使用すると(コマンドボタンで送信)、値の変更は正常に機能します。

しかし、私がこのようなものを使用するとき:

<h:form id="form">
    <p:panel header="Panel" toggleable="true" closable="true" id="pan1">
            <p:panel header="Options" toggleable="true" collapsed="true" id="pan2">
                <p:panelGrid style="width:100%; text-align:center;" id="pan3">
                    <p:row>
                        <!-- some outputLabels -->

                        <p:column rowspan="2" style="width:130px;">
                            <p:splitButton value="Show" action="#{ graph.update }"
                                update=":form" id="splitbtn">
                                <p:menuitem value="Update 2"
                                    action="#{ graph.update2 }"
                                    update=":form" />
                            </p:splitButton>
                        </p:column>
                    </p:row>
                    <p:row>

                        <p:column>
                            <p:selectOneButton id="btn1"
                                value="#{ bean.val }">
                                <f:selectItem itemLabel="lbl1" itemValue="1" />
                                <f:selectItem itemLabel="lbl2" itemValue="2" />
                                <p:ajax event="change"
                                    update=":firstChartForm" />
                            </p:selectOneButton>
                        </p:column>

                        <!--  more coloumns -->
                    </p:row>
                  </p:panel>
                  <!-- more content -->
             </p:panel>
        </h:form>

次に、ボタンを変更してフォームをajaxで更新すると、bean.valの値は空になります。(setterメソッドのロガーは空の値の2倍を出力します)。

値が空なのはなぜですか?

4

2 に答える 2

1

これはPrimeFacesのselectOneButtonバグです。PrimeFaces3.4で修正

IssueTrackerのIssue3767へのリンク:

http://code.google.com/p/primefaces/issues/detail?id=3767

これは、PrimeFacesのバージョン3.4で修正されました。

于 2012-07-25T11:38:18.323 に答える
0

このような動作をするたびに、一部の更新が正しく指定されていないことを意味します。全体的にupdate="@form"を使用してみてください。この目的でSelectOneButtonを使用することは少し珍しいことですが、代わりにTabViewを使用してこれを実現することもできます。

于 2012-07-13T07:25:29.833 に答える