Come aggiungere dynamicmente componenti JSF

Posso aggiungere componenti JSF in modo dinamico? Ho bisogno di avere un modulo con un pulsante che dovrebbe aggiungere uno al modulo. È ansible?

So che questo dovrebbe essere ansible in JavaScript in qualche modo. Qualcuno sa come farlo in JSF? Penso che il problema principale sia come ottenere o impostare i valori di nuovi input tramite #{value} .

Utilizza un componente come o per visualizzare un List di quadro di dimensioni dinamiche. Crea il bean @ViewScoped per assicurarti che l’elenco venga ricordato attraverso i postback sulla stessa vista anziché ricreato più e più volte.

Esempio di con :

         

Bean gestito:

 @ManagedBean @ViewScoped public class Bean { private List items; @PostConstruct public void init() { items = new ArrayList(); } 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 getItems() { return items; } } 

Modello:

 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); } } 

Guarda anche:

  • Strutture CRUD JSF 2.0 raccomandate
  • Come creare campi modulo JSF dinamici
  • Come implementare un elenco dinamico con un componente composito JSF 2.0?
  • Come scegliere l’ambito del bean giusto?

Dovrebbe essere così

Associare un tag form alla proprietà bean

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

in caso, creare una nuova istanza del componente di input

 HtmlInputText input=new HtmlInputText(); 

e allega al tuo modulo

 myform.getChildren().add(input); 

Usa h:dataTable per aggiungere elementi dynamicmente … Avere un elenco di qualsiasi tipo che si desidera fornire valori per dataTable …

In h:dataTable … puoi includere il tag dell’elemento da creare all’interno di

Verrà utilizzato per generare elementi che desideri creare dynamicmente.