Я нашел несколько подобных вопросов, таких как этот, однако есть так много способов сделать это, чтобы он меня смутил.
Мы получаем файл XML
, который мы читаем. Этот XML
содержит информацию о некоторых полях формы, которые должны быть представлены.
Итак, я создал этот пользовательский DynamicField.java
, который имеет всю необходимую информацию:
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.
}
Итак, мы имеем List<DynamicField>
.
Я хочу перебрать этот список и заполнить поля формы, чтобы он выглядел примерно так:
<h:dataTable value="#{dynamicFields}" var="field">
<my:someCustomComponent value="#{field}" />
</h:dataTable>
<my:someCustomComponent>
затем вернет соответствующие компоненты формы JSF (т.е. label, inputText)
Другим подходом было бы просто отобразить <my:someCustomComponent>
, а затем вернуть HtmlDataTable
элементы формы. (Я думаю, что это, возможно, проще сделать).
Какой подход лучше всего? Может ли кто-нибудь показать мне ссылки или код, где он показывает, как я могу это создать? Я предпочитаю полные примеры кода, а не такие ответы, как "Вам нужен подкласс javax.faces.component.UIComponent
".