質問

を追加できまJSF部品を動的に?いい形のボタンを追加し、 <h:inputText> のです。可能ですか?

こうすることJavaScriptのなかのどこかにあるのですね。いでは誰もが知っているこJSF?と思い、大きな問題はどうやっていけばいいですか?または設定値の新しい入力 #{value}.

役に立ちましたか?

解決

を使用し繰り返し処理などのコンポーネント <h:dataTable> または <ui:repeat> 表示を動的にサイズ List の機関となった。の豆 @ViewScoped るためのリストが記憶され渡供され、同じビューの代わりに再現。

キックオフした例 <h:dataTable>:

<h:form>
    <h:dataTable value="#{bean.items}" var="item">
        <h:column><h:inputText value="#{item.value}" /></h:column>
        <h:column><h:commandButton value="remove" action="#{bean.remove(item)}" /></h:column>
    </h:dataTable>
    <h:commandButton value="add" action="#{bean.add}" />
    <h:commandButton value="save" action="#{bean.save}" />
</h:form>

管理ビーン:

@ManagedBean
@ViewScoped
public class Bean {

    private List<Item> items;

    @PostConstruct
    public void init() {
        items = new ArrayList<Item>();
    }

    public void add() {
        items.add(new Item());
    }

    public void remove(Item item) {
        items.remove(item);
    }

    public void save() {
        System.out.println("items: " + items);
    }

    public List<Item> getItems() {
        return items;
    }

}

モデル:

public class Item {

    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String toString() {
        return String.format("Item[value=%s]", value);
    }

}

参照:

他のヒント

これは、そのようにする必要があります。

Beanプロパティにフォームタグバインド


<form binding="#{myBean.myform}">...</form>

@ManagedBean("myBean")
public class Bean{
   property HtmlForm myform;
}

イベントに、入力コンポーネント

の新しいインスタンスを作成します
HtmlInputText input=new HtmlInputText();

とフォームに添付します。

myform.getChildren().add(input);

を使用するには、あなたがのdataTable ...

の値を提供したい任意のタイプのリストを持っている...動的に要素を追加するh:dataTable h:dataTableで...あなたは内部<h:column>を作成するための要素タグを含めることができます。

あなたが動的に作成したい要素を生成するために使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top