0

私はprimefacesダイアログを持っています。私がやりたいのは、コマンドボタンのアクションが開始する前にinputtextを処理することです。myController.sendToPostBox メソッド内で、myController.rejectionReason 文字列が null を返します。これが私のビューコードです。プロセス属性を削除すると、コマンドボタンが機能しません。

<h:form>
....
<p:dialog id="myPanel"
                  widgetVar="myPanelId"
                  resizable="true"
                  appendToBody="true"
                  draggable="true"
                  height="200"
                  width="300">
            <p:panelGrid id="myPanelGridId" style="width: 250px;" styleClass="panelGridWithoutBorder">
                <p:row>
                    <p:column colspan="2">
                        <p:inputTextarea style="width: 250px;" value="#{myController.rejectionReason}"/>
                    </p:column>
                </p:row>
                <p:row>
                    <p:column>
                        <p:commandButton value="Save"
                                         oncomplete="if (!args.validationFailed) myPanel.hide();"
                                         process="myPanelId"
                                         action="#{myController.sendToPostBox()}"/>
                    </p:column>
                    <p:column>
                        <p:commandButton value="Close" />
                    </p:column>
                </p:row>
            </p:panelGrid>
        </p:dialog>
</h:form>
4

2 に答える 2

2

ダイアログの内側に配置するだけ<h:form>です(代わりにダイアログの内側に<h:form>

説明:

ダイアログを使用appendToBody="true"すると、生成された html の本体にラップするフォームの外側にダイアログが転送されます。ダイアログ内にフォームがないため、実際には送信できません。

このスレッドも見てください: Primefaces ダイアログの適切な構成

于 2013-09-11T11:16:02.333 に答える