He encontrado algunas preguntas similares, como this, pero hay muchas maneras en que se puede hacer esto que me hizo más confundido.Cómo crear campos de formulario JSF dinámicos
Estamos obteniendo un archivo XML
que estamos leyendo. Este XML
contiene información sobre algunos campos de formulario que deben presentarse.
Así que creé esta costumbre DynamicField.java
que tiene toda la información que necesitamos:
public class DynamicField {
private String label; // label of the field
private String fieldKey; // some key to identify the field
private String fieldValue; // the value of field
private String type; // can be input,radio,selectbox etc
// Getters + setters.
}
así que tenemos una List<DynamicField>
.
Quiero recorrer esta lista y rellenar los campos del formulario por lo que se ve algo como esto:
<h:dataTable value="#{dynamicFields}" var="field">
<my:someCustomComponent value="#{field}" />
</h:dataTable>
El <my:someCustomComponent>
sería entonces devolver los componentes de la forma de JSF apropiada (es decir, la etiqueta, inputText)
Otro enfoque sería mostrar el <my:someCustomComponent>
y luego devolver un HtmlDataTable
con elementos de formulario. (Creo que esto es quizás más fácil de hacer).
¿Qué enfoque es el mejor? ¿Puede alguien mostrarme algunos enlaces o códigos donde se muestra cómo puedo crear esto? Prefiero ejemplos completos de código, y no respuestas como "Necesita una subclase de javax.faces.component.UIComponent
".
Hay una cuarta alternativa: componente de extensión PrimeFaces: DynaForm (http://www.primefaces.org/showcase-ext/views/home.jsf). Esto tiene algunas limitaciones, pero será suficiente para la mayoría de los usuarios. –
Hola BalusC, soy un gran admirador de tu. He estado aprendiendo a través de sus respuestas y necesito su identificación de correo para tener un poco de discusión sobre un problema que estoy enfrentando ahora. Por favor envíeme su identificación a [email protected] –