1

我正在尝试使用以下代码将 id 从支持 bean 分配给 div 元素:

<c:forEach var="item" items="#{backingBean.dataModel}">
<t:div id="xyz_#{item.id}" forceId="true" forceIdIndex="false" title="#{item.name}" style="display:none">
    <ui:include src="#{item.view}">
        <ui:param name="id" value="#{item.id}" />
        <ui:param name="model" value="#{item.model}" />
    </ui:include>
</t:div>
</c:forEach>

第一次加载页面时,它会分配从支持 bean 推断的正确 id。当我使用此代码刷新页面部分时,它不会调用支持 bean 的 getId 方法,而是正确调用 getView、getModel。结果,div 的 ID 不正确。

可能会在 c:forEach 执行之前分配 div id。当它在 c:forEach 中时,如何强制 div 使用来自支持 bean 的 Id?

4

1 回答 1

2

JSF UI 组件的id(and binding) 属性在视图构建期间(第一次构建 JSF 组件树时)进行评估,而不是在视图渲染期间或在后续回发到相同的看法。

我不完全确定你为什么要这样接近它<t:div><div>在这种特殊情况下,使用纯 HTML 会更有意义。

<c:forEach var="item" items="#{backingBean.dataModel}">
    <div id="xyz_#{item.id}" title="#{item.name}" style="display:none">
        <ui:include src="#{item.view}">
            <ui:param name="id" value="#{item.id}" />
            <ui:param name="model" value="#{item.model}" />
        </ui:include>
    </div>
</c:forEach>

也可以看看:

于 2012-10-10T14:41:41.767 回答