0

基本的な質問に聞こえるかもしれませんが、これを理解するのに苦労しています。まず、私はこのフォームを持っています:

<h:form>
   <h:inputText value="#{movies.name}"/>
   <a4j:commandButton id="mybutton" value="Modify" immediate="true" action="#{movies.testModify}"/>
</h:form>

ムービー Bean の testModify() メソッド内の入力テキストから値を取得したいと考えています。私の問題は、testModify がまったく呼び出されないことです。私が気づいた奇妙な動作は、 h:form タグを削除するとメソッドが呼び出されることですが、入力テキストから値を取得する方法がまだわかりません。

私が読んだことから、 a4j:commandButton が正しく機能するには h:form が必要です。

どんな助けでも大歓迎です!

4

2 に答える 2

0

まず第一に、Markos Fragkakis<h:commandButton>が述べているように、 ajaxified の代わりにbasic を使用<a4j:commandButton>してください。あなたの場合と同様に、ここで Ajax アクションを使用することに興味はありません。

次に、immediate="true"このボタンの属性を削除します。この属性を使用するとApply Request Values、フェーズまで待機するのではなく、デフォルトの ActionListener をすぐに (つまり、リクエスト処理ライフサイクルのフェーズ中に) 実行する必要がありますInvoke Application

Invoke ApplicationJava Bean に対するアクションがまだ呼び出されない場合は、 JSFライフサイクル フェーズの前に何か問題が発生した可能性があります。を追加する<h:messages>と、考えられる問題が表示されます。

<h:form>
   <h:messages/>
   <h:inputText value="#{movies.name}"/>
   <h:commandButton id="mybutton" value="Modify" action="#{movies.testModify}"/>
</h:form>
于 2010-11-08T14:00:43.277 に答える
0

h:commandButtonの代わりに を使用しa4j:commandButtonます。1 つ目はフォームを送信する標準の JSF ボタンで、2 つ目は ajax リクエストを実行します。

于 2010-11-06T00:25:30.630 に答える