小编rdc*_*rng的帖子

请参阅基于迭代索引的JSF动态生成的ID

在JSF中,<ui:repeat/>类似的组件(如PrimeFaces)<p:dataTable/>根据迭代索引为子组件生成动态ID,即:

<p:dataTable id="table" var="item" value="#{itemList}">
    <h:outputText id="name" value="#{item.name}"/>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

会生成这样的东西:

<table id="table">
    <span id="table:0:name">name0</span>
    <span id="table:1:name">name1</span>
    <span id="table:2:name">name2</span>
    ...
    <span id="table:n:name">nameN</span>
</table>
Run Code Online (Sandbox Code Playgroud)

所以所有元素显然都有明确的客户ID.我故意跳过了<tr/>,<td/>

因此,<p:ajax ... update=":table:name"/>引用表中的所有名称并且它工作正常,<p:ajax ... update=":table:#{someDesiredIndex}:name"/>失败并显示类似于SEVERE: javax.faces.FacesException: Cannot find component with identifier ":table:0:name" in view.事件的消息,但我可以确认该组件存在于标记中.是不是可以这样做?

我正在运行GlassFish 3.1.2和Mojarra 2.1.6,以防它相关.

jsf-2

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

jsf-2 ×1