Tôi đã tìm thấy một số câu hỏi tương tự như this một, tuy nhiên có rất nhiều cách để làm điều này khiến tôi bối rối hơn.Cách tạo các trường biểu mẫu JSF động
Chúng tôi đang nhận tệp XML
mà chúng tôi đang đọc. XML
này chứa thông tin về một số trường biểu mẫu cần được trình bày.
Vì vậy, tôi đã tạo ra tùy chỉnh này DynamicField.java
có tất cả các thông tin chúng ta cần:
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.
}
Vì vậy, chúng tôi có một List<DynamicField>
.
Tôi muốn lặp thông qua danh sách này và cư các trường mẫu để nó trông giống như sau:
<h:dataTable value="#{dynamicFields}" var="field">
<my:someCustomComponent value="#{field}" />
</h:dataTable>
Các <my:someCustomComponent>
sau đó sẽ trả lại thành phần biểu mẫu JSF thích hợp (tức là nhãn, inputText)
Một cách tiếp cận khác là chỉ hiển thị <my:someCustomComponent>
và sau đó sẽ trả lại một HtmlDataTable
với các phần tử biểu mẫu. (Tôi nghĩ rằng điều này có thể dễ dàng hơn để làm).
Phương pháp nào là tốt nhất? Ai đó có thể chỉ cho tôi một số liên kết hoặc mã nơi nó cho thấy cách tôi có thể tạo ra điều này? Tôi thích các ví dụ mã hoàn chỉnh hơn và không phải là câu trả lời như "Bạn cần một lớp con của javax.faces.component.UIComponent
".
Có giải pháp thay thế thứ 4: Thành phần mở rộng PrimeFaces: DynaForm (http://www.primefaces.org/showcase-ext/views/home.jsf). Điều này có một số hạn chế, nhưng sẽ là đủ cho hầu hết người dùng. –
Xin chào BalusC, tôi là một fan hâm mộ lớn của bạn. Tôi đã học qua câu trả lời của bạn và tôi cần Id thư của bạn để có một số cuộc thảo luận về một vấn đề mà tôi đang phải đối mặt bây giờ. Xin vui lòng gửi cho tôi id của bạn tại [email protected] –