【发布时间】:2012-08-13 17:40:47
【问题描述】:
我有一个 JSF 页面,我需要在该页面上允许用户动态创建表单并从同一页面提交在此表单中输入的数据。
我采用了两种设计方法来实现它,但都没有完全发挥作用。
方法 1:我在 JSF 页面上放置了一个 p:panel 组件作为动态表单的容器,并将其绑定到我的支持 bean。此外,我放置了 commandButtons 以在页面上添加表单元素,并且在这些按钮的操作处理程序中,我放置了将特定 UIComponents 添加到面板 UI 组件的逻辑。这些动作处理程序的结果,我设置为与 faces-redirect=true 相同的页面。 结果:动态显示正常,但是这个动态表单的提交按钮总是只在第二次点击时起作用。
方法2:我在JSF页面上放了一个p:panel组件,作为动态表单的容器。在这个面板中,我使用 ui:include 包含了一个生成的 JSF 页面。与之前的方法类似,在添加表单元素的命令按钮的操作处理程序中,我生成要包含的 JSF 页面。这些动作处理程序的结果,我设置为与 faces-redirect=true 相同的页面。 结果:在动作处理程序执行和页面渲染完成后,生成的 JSF 页面没有立即显示。手册页刷新 2 或 3 次后,会显示生成的 JSF 页面。
我想,我没有采用正确的设计来满足我的要求。您能否建议我在这两种方法或任何替代方法中出了什么问题。
我正在使用 PrimeFaces 和 Tomcat 7.0.27。
最好的问候, 阿南德。
【问题讨论】:
标签: jsf-2 primefaces