2017-07-27 19 views
0

PFダイアログ内で実行されているprimefaces(PF)ウィザードで、読み取り専用のinputTextareaコンポーネントを検証する必要があります。ここから多くのスレッドを読み込んだ後、inputHiddenコンポーネントを使ってそれを処理することにしました。ただし、検証は正しく行われますが、inputTextに値を入力してからcommandButtonをクリックした後、foo beanのapplyNameメソッドが呼び出されなかったことに気付きました。私はJSFのライフサイクルと関係していると考えています。inputTextareaを読み取り専用で検証する方法は?

私の目標はfoo.applyNameメソッドが起動し、foo.nameが適切な値で返され、評価され、ウィザードで[次へ]ボタンをクリックできるようになります。

検証メカニズムがないと、foo.applyNameは実際にnameプロパティに値(String型)を入れて次のステップに進むことができます。

<p:panelGrid id="table"> 
    <p:inputTextarea readonly="true" value="#{foo.name}" /> 
    <h:inputHidden id="name" required="#{empty foo.name}" requiredMessage="missing name" /> 
    <p:message for="name" /> 
</p:panelGrid> 

<h:inputText value="#{foo.someVar}" /> 
<p:commandButton value="Apply Missing Name" update="table" action="#{foo.applyName}" /> 

答えて

1

問題は、CommandButtonをクリックしたとき、あなたはinputTextAreaなどのinputTextを提出しているという事実から生じます。 JSFは、送信した空のフィールドが必要であり、リクエストを続行できないことを確認します。

のinputTextにIDを与え、あなたは、例えば提出するフィールドを指定するには、commandButtonの「プロセス」属性を使用して、この

  1. を修正するカップルの方法がありますprocess = "@ this someVar"
  2. inputTextAreaフィールドとinputTextフィールドを別々のフォームに入れて、applyNameコマンドボタンで両方を処理しないようにします。
+0

ああ...私には意味があります。私はそれを動作させるためにそれを別々に再設計しましたが、私は必ずあなたの推薦で試してみます。私はそれが動作すると信じています。私はそれを確認してみましょう、私は答えを受け入れるでしょう。あなたの時間とアドバイスをありがとう! – DaeYoung

関連する問題