0

私のページには 2 つのフォームがあります。最初のフォーミュラリーには検証付きの入力フィールドがあり、もう 1 つのフォーミュラには dataTable があります。最初のフォーミュラリーには検証エラーを表示するメッセージ領域があり、2 番目のフォーミュラリーにはデータの取得に関する問題を表示するメッセージ領域があります (このメッセージ領域は myController.search から更新されます)。

    <h:form id="form1">
        <p:message id="messageForm1" for=":form1" />
        <p:inputText id="text1" value="#{myBean.data}" required="true" />
                    ....
        <p:commandButton value="Search" actionListener"#{myController.search}"
            update=":form2:dataTable :form2:messageForm2 :form1:messageForm1" process="text1, ..." />
    </h:form>

    <h:form id="form2">
        <p:message id="messageForm2" for="messageForm2" />
        <p:dataTable>
        ...
        </p:dataTable>
    </h:form>

問題は、form2 のメッセージは機能しているが、form1 の検証メッセージが表示されないことです。

4

1 に答える 1

2

タグのfor属性の説明には次のように書かれています。p:message

メッセージを表示するコンポーネントの ID。

したがって、フォームの ID を指定することはできません。単一のフォーム コンポーネントの ID を指定する必要があります。例えば<p:message id="messageForm1" for="text1" />。ただし、フォーム コンポーネントごとに 1 つのメッセージ要素を作成する必要があります。

p:messages別の方法は、タグを使用することです。例については、http: //www.primefaces.org/showcase-labs/ui/messages.jsfを参照してください。

于 2012-05-15T10:20:38.140 に答える