【发布时间】:2016-09-17 15:50:47
【问题描述】:
我尝试构建一个用户可以逐步输入数据的表单。在尝试了 FlowScoped 解决方案后,我现在尝试实现 Primefaces 向导。
说明:
我的 main.xhtml:
<h:form id="antragErfassenForm">
<p:wizard showStepStatus="false" widgetVar="wiz" showNavBar="false" >
<p:tab id="basic_decision_tab" title="Grundsatzentscheidungen">
<ui:include src="/eAkte/basic_decisions.xhtml" />
</p:tab>
<p:tab id="driving_ways_tab" title="Fahrtwegvarianten">
<ui:include src="/eAkte/driving_ways.xhtml" />
</p:tab>
</p:wizard>
</h:form>
在包含文件中,我有用于在选项卡之间导航的按钮。 第一个选项卡“basic_decisions.xhtml”中的下一个按钮:
<p:commandLink value="Next" onclick="#{eAkteController.callDrivingWays()}; PF('wiz').next();" />
根据 callDrivingWays()(评估第一个选项卡的数据)的结果,第二个选项卡具有不同的内容。
我的问题:
单击第一个选项卡上的下一步按钮时,不会调用方法 callDrivingWays()。相反,它在加载第一个选项卡时已经被调用。这就是为什么我总是有一个空的第二页。
我尝试在按钮内的 actionListener 或向导的 flowListener 内切换方法调用 callDrivingWays()。之后,该方法在正确的时间被调用,但是当我点击下一个按钮时,我得到一个异常,我的组件 ID 之前已经被使用过。
有人有什么建议吗?
【问题讨论】:
-
onclick 属性用于执行 javascript,而不是服务器端方法。您的浏览器开发者工具很可能有错误
-
所以我必须将方法放回actionListener中并修复双组件id的异常?
-
是的,确实....并提出一个新问题(这个问题实际上是一些现有问题的重复。但是没有时间找出来
标签: jsf primefaces wizard