0

数日間問題が発生していますが、Web 上で解決する良い方法が見つかりません。だから私はここに置いて、誰かが私と同じ問題を抱えている他の人を助けることができることを願っています.

いくつかのp:selectOneMenuコンポーネントを含む大きなフォームがあります。ユーザーが追加のオプションを必要とする場合、コンポーネントの横にあるプラス ボタンをクリックすると、新しいページにリダイレクトされ、新しいオプションを作成して db に保存できます。

画面を通して目的のオブジェクトを保持する keepAlive 関数を使用して、非常にうまく機能させました。ただし、空白の場合にプラス ボタンをブロックする必須フィールドがいくつかあります。

ボタンを に切り替えてもimmediate="true"、フィールドが属性に渡されないため、実際には役に立ちません。


したがって、必要なフィールドを属性に渡す方法が必要です。これにより、一部の必須フィールドが空白の場合でも、画面全体を維持できます。誰かがうまくいくかもしれないアイデアを持っていますか?

4

1 に答える 1

2

保存ボタンが実際に押されたときにのみrequired属性を評価させてください。true

<c:set var="saveButtonPressed" value="#{not empty param['form:save']}" />

<h:form id="form">
    <p:selectOneMenu ... required="#{saveButtonPressed}" />
    <p:inputText ... required="#{saveButtonPressed}" />
    ...
    <p:commandButton id="save" ... />
</h:form>
于 2012-11-06T17:14:03.363 に答える