2012-03-19 25 views
5

Tôi muốn để lặp qua một số "khách" và chèn một id dynanimallyđộng gán ID để thẻ sử dụng một biến EL

<ui:repeat value="#{guestList}" var="guest"> 
    <p:inputText id="firstname_#{guest.uniqueID}" value="" label="Firstname" /> 
    <p:message for="firstname_#{guest.uniqueID}" /> 
</ui:repeat> 

Vấn đề là, rằng <p:message /> không thể giải quyết firstname_#{guest.uniqueID}

javax.faces.FacesException - Không thể tìm thấy thành phần "firstname_1" trong chế độ xem. tại org.primefaces.component.message.MessageRenderer.encodeEnd (MessageRenderer.java:41)

Nó hoạt động mà không cần bất kỳ vấn đề nếu tôi viết một hằng số bên trong vòng lặp, và tôi cũng chắc chắn rằng các biến thể giải quyết, vì tôi có thể xuất nó trong vòng lặp đó.

Tôi làm cách nào để hướng dẫn jsf hoặc các nguyên tố giải quyết biến này?

Trả lời

9

Bạn không thể sử dụng biểu thức EL trong thuộc tính id.

Nhưng bạn không cần phải quan tâm đến tính duy nhất của id trong ui: lặp lại. JSF làm điều đó cho bạn. Chỉ cần cung cấp cho lĩnh vực đầu vào của bạn một "cố định" id và tham khảo nó trong bạn p:message:

<ui:repeat value="#{guestList}" var="guest"> 
    <p:inputText id="firstname" value="" label="Firstname" /> 
    <p:message for="firstname" /> 
</ui:repeat> 
+0

Cảm ơn bạn đã trả lời, nhưng số lượng khách là một việc đơn giản hóa chỉ của vấn đề của tôi kể từ khi tôi cần những ID để giải quyết các lĩnh vực ngay bên trong đậu ủng hộ của tôi. Trừ khi có một cách khác, để giải quyết đậu của tôi theo một cách khác, đây không phải là giải pháp cho vấn đề của tôi. (Tôi đã cố gắng để làm cho nó rõ ràng hơn trong câu hỏi của tôi) – devsnd

+0

Nó không phải là rõ ràng lý do tại sao bạn cần id trong đậu ủng hộ. Bạn đã để trống thuộc tính giá trị. Nó nên được sử dụng để ràng buộc đầu vào vào một trường bean sao lưu. Có lẽ đó là những gì bạn cần? –

+0

Bạn đã đúng! Bây giờ tôi đã nhận nó: Kể từ khi tôi lặp đi lặp lại thông qua tất cả các "khách" của tôi anyway, tôi có thể tự động gán các ràng buộc giá trị trong vòng lặp của tôi. (Xin lỗi vì sự nhầm lẫn, nhưng thực sự vấn đề xảy ra đầu gối sâu trong các tác phẩm lồng nhau) – devsnd

Các vấn đề liên quan