JSF2 と Facelets を使用して JavaEE Web サイトを設計しています。以下のコードは、JSF コードがどのように見えるかの単なる例です。
Web サイトのユーザーが新しいユーザーを作成したいが、名などの設定を忘れた場合、エラーが発生し、要素が強調表示されます (赤い色と要素の周りの赤い枠)。強調表示するには、次の属性を使用する必要があります。
class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}"
問題は、数値 0 を動的に設定する必要があることですが、私が知る限り、JSF ではネストが許可されていません。#{curUser.number} を使用して番号を取得できます。
質問: for および class 属性に数値を設定するにはどうすればよいですか?
for="createUsersForm:allUsers:0:firstName" class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}"
JSF コードの例:
<h:form id="createUsersForm">
<ui:repeat id="allUsers" value="#{createUserController.users}" var="curUser">
<div class="formLine">
<label for="createUsersForm:allUsers:0:firstName" class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}">
<h:outputText value="#{userStaticText['user.firstName.label']}"/>
</label>
<h:inputText id="firstName" value="#{curUser.firstName}" class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}"/>
</div>
</ui:repeat>
</h:form>
よろしく、ヤナ