如何在jsf中解决周围的命名容器?

时间:2012-08-23 09:28:45

标签: java jsf jsf-2 primefaces

我有一个带有<p:dataTable>的jsf 2.0页面,在此表格中有一个<p:commandButton>,它应该使用ajax请求从该表中删除一个项目。删除本身工作正常,但我不知道如何识别渲染<p:dataTable>的周围update

<lots of naming containers>
...
   <p:dataTable id="dataTable" var="userItem" ... />
     <p:column>

        <p:commandButton
             action="#{userController.doDelete(userItem.id)}"
             value="delete" 
             update="?????"/>  <!-- How to address the dateTable? -->

     </p:column>
   </p:dataTable>
<.lots of naming containers>

我已经尝试了update="dataTable",但是mojarra找不到它编辑:由于其他原因,它无法正常工作

所以我的问题是如何解决周围的命名容器,没有使用从根UIComponent开始的绝对路径(因为那时我需要命名很多命名容器。)

1 个答案:

答案 0 :(得分:3)

假设您在表单中包含prependId="false"作为属性的所有内容,则dataTable的更新属性值应该有效。

子组件的PrimeFaces update属性识别父dataTable组件的id。此外,您还可以使用PrimeFaces更新中的@parent值来重新呈现子元素直接父容器。