1

重複の可能性:
動的 JSF 1.2 フォーム フィールドの作成方法

「追加」ボタンをクリックするたびに、(テキストボックス、ドロップダウンメニュー) などのフォーム要素のセットを追加できる機能が必要です。コンポーネントの横にある「削除」ボタンをクリックすると、ページから削除する必要があります。この機能は、Java で必要でした。誰でもこれについて助けることができますか?

4

1 に答える 1

1

これは実用的な例です。要件に応じて独自のコードを実装する必要があります。
ページに を追加してtextBoxから、 のような反復可能なコンポーネントを使用するかui:repeat、複数のコンポーネントを作成します。a4j:repeatc:forEach

<h:form id="test">  
  <ui:repeat value="#{myBean.myObjects}" var="obj">
    <h:inputText value="#{obj.text}" />
    <h:commandButton action="#{myBean.remove(obj)}" value="Remove"/><br/>
  </ui:repeat>
  <br/>
  <h:commandButton action="#{myBean.add()}" value="Add"/>  
</h:form>

マネージド Bean のgetMyObjects()メソッドは、アイテムを追加するリストを返す必要があります。

public class MyBean {
  private List<MyObject> objs = new ArrayList<MyObject>();

  public List<MyObject> getMyObjects() {
    return objs;
  }

  public void remove(MyObject t) {
    objs.remove(t);
  }

  public void add() {
    objs.add(new MyObject());
  }

  public class MyObject {
    private String text;

    public String getText() {
      return text;
    }

    public void setText(String text) {
      this.text = text;
    }

  }
}
于 2012-12-14T11:52:47.343 に答える