Có một vấn đề nhỏ với ứng dụng Seam tôi đang làm việc và tôi đã tự hỏi liệu có ai biết cách làm tròn nó không. Tôi đã có một hình thức trong ứng dụng của tôi có sử dụng AJAX để hiển thị một số hộp đầu vào tùy thuộc vào một mục trong một hộp thả xuống. Mã hoạt động tốt ngoại trừ việc đặt ID trong hộp nhập liệu của tôi. Có vẻ như JSF không cho phép tôi đặt ID thông qua một biến. Các thuộc tính khác như "for" trong nhãn là tốt. Dưới đây là một số mã giải thích những gì tôi muốn nói:Id động trong JSF/Seam
<ui:repeat value="#{serviceHome.instance.serviceSettings}" var="currSetting" >
<li>
<!-- Imagine the below works out as "settingABC" -->
<c:set var="labelKey" value="setting#{jsfUtils.removeWhitespace(currSetting.key.name)}" />
<!-- Labelkey is correctly added into this input so for = "settingABC" -->
<h:outputLabel for="#{labelKey}" styleClass="required generated" value="#{currSetting.key.name}:"/>
<s:decorate styleClass="errorwrapper">
<!-- Labelkey ISN'T correctly added into this input. Instead we just get "setting" -->
<h:inputText id="#{labelKey}" value="#{currSetting.value}"/>
<a4j:outputPanel ajaxRendered="true">
<h:message for="#{labelKey}" styleClass="errormessage" />
</a4j:outputPanel>
</s:decorate>
</li>
</ui:repeat>
Có ai có bất kỳ ý tưởng làm thế nào tôi có thể vượt qua điều này?
Rất tiếc. Tôi rời khỏi điều này trong một thời gian không I. Tôi hiểu tại sao tôi không thể gán ID trong một vòng lặp nhưng tôi biết những gì tôi đang thiết lập như ID (labelKey) sẽ là duy nhất cho mỗi lần lặp qua vòng lặp. –
Đối với những gì tôi muốn đạt được, tôi muốn biết một cách tôi có thể liên kết h: inputText & h: tin nhắn với nhau trong vòng lặp. Vì vậy, nếu một số xác nhận không thành công trên văn bản đầu vào, tôi có thể gặp lỗi trong hộp thư có liên quan của nó. –
Tôi nghĩ rằng tôi có thể chỉ cần làm điều đó một cách khác nhau và chỉ cần có một thông điệp chung cho tất cả các lĩnh vực được hiển thị/tạo ra trên sự thay đổi thả xuống. Xin lỗi về nhiều nhận xét - Không thể phù hợp với tất cả trong 300 ký tự! –