tôi cập nhật một thành phần thông qua AJAX trong JSF:Có được tiền tố đầy đủ cho một ClientId thành phần bên trong container đặt tên với JSF 2.0
<h:form>
<h:outputLink>Click me
<f:ajax event="click" render=":messages" />
</h:outputLink>
</h:form>
<h:messages id="messages" globalOnly="true" />
Khi <h:messages />
cư trú bên ngoài <h:form />
Tôi có tiền tố ID với dấu hai chấm (:
) . Những công việc này.
Tuy nhiên, nếu tôi đặt cùng mã này vào một thành phần và bao gồm thành phần đó vào trang của tôi, mã sẽ không thành công. Lý do là :messages
khai đề cập đến thư mục gốc của hệ thống phân cấp thành phần, trong khi các thành phần <h:messages />
mà tôi muốn cập nhật thực sự nằm dưới phần tùy chỉnh của tôi, mà cư trú dưới trang (do đó vị trí là của phong cách :myComponent:messages
.
Bên trong Tôi biết rằng tôi có thể gán ID theo cách thủ công cho thành phần của tôi, và sử dụng nó để tiền tố tham chiếu (như :#{cc.attrs.id}:messages
) .Tuy nhiên, tôi không biết ở cấp độ nào của cấu trúc phân cấp thành phần thành phần này nằm, do đó, tiền tố bắt buộc có thể giống như một số tiền như :foo:bar:x:y:messages
.