Tôi đang sử dụng thành phần thủ thuật Primefaces. Trên một tab, tôi tự động tạo các hộp đầu vào dựa trên đầu vào của các tab trước (loại người dùng). Các nhãn văn bản đầu vào có nguồn gốc từ một danh sách. Trong bean sao lưu của tôi, tôi có một bản đồ chứa các nhãn đầu vào như các đầu vào khóa và đầu vào làm giá trị.Làm cách nào để ràng buộc giá trị hộp nhập vào giá trị bản đồ trong thuộc tính bean sao lưu khi sử dụng thuật sĩ
Nhấp vào hôm sau, tôi muốn bản đồ (giá trị) được cập nhật với các đầu vào sử dụng (tương ứng với phím)
<c:forEach items="#{gdsiGeodataBean.actionCommand.fields}" var="reqs">
<h:outputLabel for="#{reqs.name}" value="#{reqs.name}:* " />
<pou:inputText value="#{gdsiGeodataBean.actionCommand.values['reqs.name']}" required="true" requiredMessage="Input is required."/>
</c:forEach>
đậu ủng hộ của tôi:
private List<RequiredParam> fields; // +getter (no setter required)
private Map<String, String> values; // +getter (no setter required)
public CommandAction(String actionName, String actionParams, String context) {
this.actionName = actionName;
this.actionParams = actionParams;
this.contextName = context;
//Set up parameters
getRequiredParams();
getOptionalParams();
fields = getFields();
values = new HashMap<String, String>();
}
Về cơ bản những gì tôi muốn cho các giá trị bản đồ được cập nhật với đầu vào của người dùng từ các hộp văn bản.
Như bạn có thể thấy tôi đã làm theo ví dụ này http://stackoverflow.com/questions/7010256/how-to-dynamically-build-a-back-bean-edit-form – algone
Thử thêm sự kiện FlowListener trên bean được quản lý của bạn và xác minh ở đó nếu các giá trị trong bản đồ của bạn đang được cập nhật ở phía máy chủ: 'flowListener =" # {managedBean.onFlowListener} ' Nếu điều này không xảy ra, hãy xác minh rằng bạn không nhận được bất kỳ trường hợp ngoại lệ hoặc xác thực nào lỗi trong giai đoạn xác nhận của postback –
@maple_shaft Tôi đã có điều đó trong quan điểm của mình. –
algone