質問
を追加できま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>
を作成するための要素タグを含めることができます。
あなたが動的に作成したい要素を生成するために使用されます。
所属していません StackOverflow