Динамические идентификаторы в JSF / Seam
У меня небольшая проблема с приложением Seam, над которым я работаю, и мне было интересно, если кто-нибудь знает способ обойти это. В моем приложении есть форма, которая использует AJAX для отображения определенных полей ввода в зависимости от элемента в раскрывающемся списке. Код работает нормально, за исключением установки идентификаторов в моих полях ввода. Похоже, JSF не позволяет мне устанавливать идентификатор через переменную. Другие атрибуты, такие как «для» в метках, в порядке. Вот код, объясняющий, что я имею в виду:
<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>
Кто-нибудь знает, как я могу пройти через это?