Cómo agregar dinámicamente componentes JSF

¿Puedo agregar componentes JSF dinámicamente? Necesito tener un formulario con un botón que debería agregar un al formulario. es posible?

Sé que esto debería ser posible en JavaScript de alguna manera. ¿Alguien sabe cómo hacer esto en JSF? Creo que el problema principal es cómo obtengo o establezco valores de nuevas entradas a través de #{value} .

Utilice un componente de iteración como o para visualizar una List de entidades de tamaño dynamic. Haga que Bean @ViewScoped asegure de que la lista se recuerde en las devoluciones en la misma vista en lugar de volver a crearla una y otra vez.

Ejemplo de inicio con :

         

Bean administrado:

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

Modelo:

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

Ver también:

  • Recomendaciones JSF 2.0 CRUD marcos
  • Cómo crear campos de formulario JSF dynamics
  • ¿Cómo implementar una lista dinámica con un componente compuesto JSF 2.0?
  • ¿Cómo elegir el scope del frijol correcto?

Debería ser así

Enlaza una etiqueta de formulario a la propiedad de frijol

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

en el evento, crea una nueva instancia del componente de entrada

 HtmlInputText input=new HtmlInputText(); 

y adjuntar a su formulario

 myform.getChildren().add(input); 

Use h:dataTable para agregar elementos dinámicamente … Tenga una lista de cualquier tipo que quiera proporcionar valores para dataTable …

En h:dataTable … puede incluir la etiqueta del elemento para crear dentro de

Se usará para generar elementos que desee crear dinámicamente.