【发布时间】:2012-10-18 21:53:51
【问题描述】:
我有一个带有列表项的菜单,里面有一个p:commandLink。在将它用于不同的页面时,我意识到我在更新带有p:dataTable 和p:columns 的表单时遇到了问题。点击链接后,form2 实际上有一些面板和里面的表格应该更新。现在我的问题是:form2 中只有 大部分 内容被正确更新,但 p:columns 具有 old 值。如果我再次单击该链接,则会显示正确的值。
bean方法public void selectProject(Project myProject)被正确调用,值被正确处理。
现在奇怪的是:如果我添加 h:graphicImage 和 p:ajax 一切正常!!
<h:form id="form1">
...
<li>
<p:commandLink update=":form2" actionListener="#{bean.selectProject(p)}">
<h:outputText value="#{p.name}" />
</p:commandLink>
<!-- Code below is for testing only, but works fine! -->
<h:graphicImage value="#{iconBean.icon(12,'clock')}">
<p:ajax event="click" update=":form2" listener="#{bean.selectProject(p)}"/>
</h:graphicImage>
</li>
...
</h:form>
更新 这似乎与p:columns 无关,简化的测试用例显示了p:commandLink 的预期行为。在原始(仍然失败)设置中,菜单被实现为复合组件。
【问题讨论】:
-
您的表单是嵌套的吗?不要在 web 开发中嵌套表单,它会导致各种 DOM 问题,就像你遇到的那样
标签: java ajax jsf-2 primefaces