1

みなさん、

私はこれらすべてに不慣れで、おそらくこれはばかげた質問になるでしょうが、

プロパティ flower - String とプロパティ List -bouquet を持つマネージド Bean があります。

xhtml には h:inputText があり、花の名前を入力する必要があります。ah:command ボタンをクリックすると、アクション #{managedBEan.addFlower} として呼び出されます。addFlower では、ユーザーが入力した花の名前を追加し、リストに追加 --- 私は ah:form を使用しています

しかし、ボタンをクリックしたときにプロパティの set メソッドが jsf によって呼び出されないようです。彼女が宣言されたように、花のプロパティは値として null を持っています

あなたの提案をありがとう、アレックス

4

3 に答える 3

1

豆:

... myBean() {
   Flower flower;

   (...)

   public void addFlower() { }

   //getters and setters for Flower prop.
}

Xhtml

<h:inputText value="#{myBean.flower.name}"/>
<h:commandButton action="#{myBean.addFlower}" value="Click me!"/>

それはあなたがしなければならないすべてです。get と set を持つ花のインスタンスとh:inputText、"value" プロパティに花の名前を持つ です。

ボタンをクリックすると、入力された値が value で参照されるプロパティに格納されるため、flower.name(addFlower メソッドで) を印刷すると、ユーザー入力を確認できます。

actionListenerも機能しますが、使用しているインポートを確認する必要がありますActionEvent。IDEは常にインポートjava.awt.event.ActionEventしますが、正しいものはjavax.faces.event.ActionEvent...java.awt動作しません.それがあなたのメソッドが呼び出されない理由だと思います.

于 2011-01-14T11:36:10.507 に答える
0

タグは入力とボタンの両方を囲んでいますか?

<h:form>
    <h:inputText value="#{myBean.flower.name}"/>
    <h:commandButton action="#{myBean.addFlower}" value="Click me!"/>
</h:form>

それ以外の場合、入力は送信されません。

于 2011-01-14T23:02:38.640 に答える
0

次のように、 actionListenerを宣言する必要があります。

<h:commandButton actionListener="#{myBean.addFlower}" . . .

Bean で addFlower を定義する必要があります

   public void addFlower(ActionEvent ev)

ジョブを実行します。

于 2011-01-14T11:03:13.413 に答える