Como criar campos de formulário JSF dinâmicos

Eu encontrei algumas perguntas semelhantes comoesta primeiro, no entanto, existem tantas maneiras de fazer isso que me deixaram mais confusa.

Estamos recebendo umXML arquivo que estamos lendo. esteXML contém informações sobre alguns campos de formulário que precisam ser apresentados.

Então eu criei esse costumeDynamicField.java que tem todas as informações que precisamos:

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.
}

Então nós temos umList<DynamicField>.

Quero percorrer esta lista e preencher os campos do formulário para que fique algo como isto:

<h:dataTable value="#{dynamicFields}" var="field">
    <my:someCustomComponent value="#{field}" />
</h:dataTable>

o<my:someCustomComponent> retornaria os componentes do formulário JSF apropriados (ou seja, label, inputText)

Outra abordagem seria apenas exibir o<my:someCustomComponent> e então isso retornaria umHtmlDataTable com elementos de formulário. (Eu acho que isso talvez seja mais fácil de fazer).

Qual abordagem é a melhor? Alguém pode me mostrar alguns links ou códigos onde mostra como posso criar isso? Prefiro exemplos de código completos e não respostas como "Você precisa de uma subclasse dejavax.faces.component.UIComponent"

questionAnswers(2)

yourAnswerToTheQuestion