2012-03-09 7 views
5

囲むフォームだけでなく、複数のフォームから値を送信(実行)したいと考えています。ですから、私はこのようなことをしたいと思っています:JSF:複数のフォームの値を実行

<h:form id="form1> 
    <h:inputText id="testinput1" value="#{testBean.input1}" /> 
</h:form> 

<h:form id="form2> 
    <h:inputText id="testinput2" value="#{testBean.input2}" /> 

    <h:commandButton value="Submit"> 
     <f:ajax execute=":form1 :form2"/> 
    </h:commandButton> 
</h:form> 

どうやって解決しますか?

What is <f:ajax execute="@all"> really supposed to do? It POSTs only the enclosing form が関連しているようですが、若干異なる問題に対処して解決できません。

答えて

4

Ajaxかどうかは、プレーンなJSF/HTMLでは不可能です。処理する必要があるすべての入力要素は、実際には同じフォーム内に入る必要があります。

+1

@Matt:そうです。しかし、 'render'属性には違いがあります。 – BalusC

+0

説明をお寄せいただきありがとうございます、BalusC。これはhtml/jsの仕様または制約に従っていますか? –

+1

@Matt:仕様では、@ allがすべてのフォームを実行するとは決して言わなかった。技術的には不可能です(ただし、JSがフォーム値をマージすることでこれを回避するのは簡単ですが、JSFではビューの状態とアクションはフォームに依存します)。 IMOの '@all'は決して' execute'の利用可能な値の一つであってはなりません。それは価値を追加せず、紛らわしいだけです。 – BalusC