我收到一个异常,代码如下。
<c:forEach var="calculoNotaUnidade" varStatus="counter" items="#{ configuracoesAva.calculoNotaUnidades }">
<tr>
<td>
<t:inputCalendar id="${ counter.count }" value="#{ calculoNotaUnidade.dataFinalizacaoUnidade }" style="z-index:999;" popupButtonStyle="z-index:0;" renderAsPopup="true" renderPopupButtonAsImage="true" size="10" onkeypress="return (formataData(this,event));" maxlength="10" title="Data de Finalização">
<f:convertDateTime pattern="dd/MM/yyyy" />
</t:inputCalendar>
</td>
</tr>
</c:forEach>
例外情况是:
调用它的异常是因为我的inputCalendar ID错误(我不知道如何修复它)。
当我没有输入任何ID时,页面被加载,但是inputCalendars
不工作。
发布于 2018-07-25 18:19:21
尝试此id="id_<c:out value="${counter.count}"/>"
发布于 2018-07-26 01:54:05
JSF不接受表达式变量来设置ID,在JSF准备HTML时,它应该已经有了可用于生成HTML的值,但显然不是这种情况。
顺便说一句,您不应该需要手动包含ID来设置索引。JSF将自动为您执行此操作,例如以下代码片段:
<ui:repeat id="test" value="#{bean.collection}" var="item">
<p:inputText id"testInput" value="#{bean.inputValue}"/>
</ui:repeat>
生成的超文本标记语言如下所示(假设变量bean.collection有3条记录):
<input id="id:0:testInput"></input>
<input id="id:1:testInput"></input>
<input id="id:2:testInput"></input>
正如您所看到的,索引已经附加到HTML id,因此这意味着您实际上不需要尝试应用的逻辑,因为JSF会自动为您执行此操作。
发布于 2018-08-06 18:41:48
下面是我们用来动态生成id的代码,我们从未遇到过任何问题
<c:forEach items="#{linkCreationBean.editLinkVO.genericFeaturesList}"
var="genFeatCapacity" varStatus="genericFeatCapIndex">
<h:outputText value="#{genFeatCapacity.label}"
id="sub_#{genericFeatCapIndex.index}_equip" />
<h:outputText value="" rendered="#{!genFeatCapacity.required}" />
<c:if test="#{genFeatCapacity.enumValues.size() gt 0}">
<h:selectOneMenu id="select_#{genericFeatCapIndex.index}_onemenu_sub"
value="#{genFeatCapacity.value}">
</h:selectOneMenu>
</c:if>
</c:forEach>
https://stackoverflow.com/questions/51313828
复制相似问题