Tình hìnhsai JSF 2 ID Chaining
JavaServer Faces Version: 2.1.6
tôi có một thành phần hỗn hợp cha mẹ với hai cc lồng nhau. Một trong số chúng chứa một HtmlPanelGroup, trong đó có một thành phần ràng buộc. Tôi sử dụng liên kết đó để lập trình thêm HtmlCommandLink-Objects vào HtmlPanelGroup.
Hãy gọi số ID:
- PHỤ HUYNH cho cc mẹ
- CHILD_FIRST cho cc đứa con đầu lòng, lồng trong PARENT
- CHILD_SECOND cho cc đứa con thứ hai, lồng trong PARENT
- GROUP cho nhóm PanelGroup, được lồng trong CHILD_SECOND
- LINK_1 cho HtmlCommandLink-Object đầu tiên, được thêm vào nhóm
vọng
tôi mong đợi ID Chaining sau (với mặc định javax.faces.SEPARATOR_CHAR):
PARENT (Composite Component, declarative)
PARENT:CHILD_FIRST (Composite Component, declarative)
PARENT:CHILD_SECOND (Component Component, declarative)
PARENT:CHILD_SECOND:GROUP (HtmlPanelGroup, declarative)
PARENT:CHILD_SECOND:GROUP:LINK_1 (HtmlCommandLink, programmatically)
Vấn đề
ID của HtmlCommandLink-Object là sai tại lần truy cập trang đầu tiên. Thay vì "PARENT: CHILD_SECOND: GROUP: LINK_1", ID chỉ là "CHILD_SECOND: GROUP: LINK_1". Sau khi tôi làm mới trang, ID chính xác là "PARENT: CHILD_SECOND: GROUP: LINK_1". Trong thực tế, mọi thành phần trong thành phần hỗn hợp thứ hai ("CHILD_SECOND") thiếu phần đầu tiên của ID ("PARENT"). Sau khi làm mới tất cả các ID là chính xác.
Giải pháp
tôi có thể tự động làm mới trang sau khi lần đầu tiên. Nhưng tôi không muốn.
Tôi thấy khó hiểu vấn đề cụ thể vì 'HtmlPanelGroup' không phải là thành phần' NamingContainer' và do đó không được phép thêm ID của nó vào liên kết lệnh con. Bạn không nên nhìn thấy 'GROUP:' trong ID của liên kết command children. SSCCE thực sự sẽ giúp ích rất nhiều trong việc hiểu vấn đề cụ thể tốt hơn. – BalusC
Tại sao trong câu hỏi này có 10 câu trả lời? Câu hỏi là ở dạng hiện tại của nó mà không có một SSCCE hợp lệ không có ý nghĩa gì, và do đó không chịu trách nhiệm. Quá tệ đến nỗi tôi không thể bỏ lại phiếu bầu đã hết hạn. – BalusC
@Bluasc Tôi nghĩ rằng bạn là đúng này rất khó để tìm ra thực tế PanelGroup có chứa các thành phần hay không. – Sheel