Ich habe einige ähnliche Fragen wie this gefunden, aber es gibt so viele Möglichkeiten, dass dies getan werden kann, dass es mich mehr verwirrt.So erstellen Sie dynamische JSF-Formularfelder
Wir bekommen eine XML
Datei, die wir lesen. Diese XML
enthält Informationen zu einigen Formularfeldern, die dargestellt werden müssen.
Also habe ich diese Gewohnheit DynamicField.java
, die alle Informationen hat, die wir brauchen:
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.
}
So haben wir eine List<DynamicField>
.
Ich möchte durch diese Liste zu durchlaufen und die Formularfelder zu füllen, so dass es so etwas wie folgt aussieht:
<h:dataTable value="#{dynamicFields}" var="field">
<my:someCustomComponent value="#{field}" />
</h:dataTable>
Die <my:someCustomComponent>
würde dann wieder die entsprechenden JSF Formularkomponenten (dh Etikett, input)
Ein anderer Ansatz wäre, nur die <my:someCustomComponent>
anzuzeigen, und dann würde das eine HtmlDataTable
mit Formularelementen zurückgeben. (Ich denke, das ist vielleicht einfacher zu tun).
Welcher Ansatz ist am besten? Kann mir jemand Links oder Code zeigen wo es zeigt wie ich das erstellen kann? Ich bevorzuge vollständige Codebeispiele und keine Antworten wie "Sie benötigen eine Unterklasse von javax.faces.component.UIComponent
".
Es gibt eine vierte Alternative: PrimeFaces Erweiterung Komponente: DynaForm (http://www.primefaces.org/showcase-ext/views/home.jsf). Dies hat einige Einschränkungen, wird aber für die meisten Benutzer ausreichen. –
Hallo BalusC, ich bin ein großer Fan von dir. Ich habe durch Ihre Antworten gelernt, und ich brauche Ihre E-Mail-ID, um eine Diskussion über ein Problem zu führen, mit dem ich jetzt konfrontiert bin. Bitte mailen Sie mir Ihre ID an [email protected] –