私が取り組んでいるSeamアプリケーションで少し問題が発生し、誰かがそれを回避する方法を知っているかどうか疑問に思いました。ドロップダウンボックスの項目に応じて、AJAXを使用して特定の入力ボックスを表示するフォームがアプリケーションにあります。入力ボックスにIDを設定する以外は、コードは正常に機能します。JSFでは変数を介してIDを設定できないようです。ラベルの「for」のような他の属性は問題ありません。これが私が何を意味するかを説明するいくつかのコードです:
<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>
誰かが私がこれを乗り越えることができる方法を知っていますか?