Jsf Primefaces向导没有';t执行onclick方法调用

Jsf Primefaces向导没有';t执行onclick方法调用,jsf,primefaces,wizard,Jsf,Primefaces,Wizard,我尝试构建一个表单,用户可以在其中一步一步地输入数据。在尝试了流式解决方案之后,我现在尝试实现Primefaces向导 说明: My main.xhtml: <h:form id="antragErfassenForm"> <p:wizard showStepStatus="false" widgetVar="wiz" showNavBar="false" > <p:tab id="basic_decision_tab" title="Gru

我尝试构建一个表单,用户可以在其中一步一步地输入数据。在尝试了流式解决方案之后,我现在尝试实现Primefaces向导

说明:

My 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>

在include files中,我有一些按钮可以在选项卡之间导航。 第一个选项卡“basic_decisions.xhtml”中的下一个按钮:

<p:commandLink value="Next" onclick="#{eAkteController.callDrivingWays()}; PF('wiz').next();" />

根据callDrivingWays()的结果(计算第一个选项卡的数据),第二个选项卡具有不同的内容

我的问题:

单击第一个选项卡上的“下一步”按钮时,不会调用callDrivingWays()方法。而是在加载第一个选项卡时已调用它。这就是为什么我总是有一个空的第二页

我尝试在按钮或向导的flowListener中的actionListener中切换方法调用callDrivingWays()。之后,在正确的时间调用该方法,但是当单击next按钮时,我得到一个异常,即我的组件ID以前已经被使用过


有人有什么建议吗?

尝试使用p:wizard的flowListener属性

<p:wizard flowListener="#{yourBB.yourMethod}" nextLabel="Next" backLabel="Back" showNavBar="false" widgetVar="myWizard">

您需要getOldStep和getNewStep根据您正在输入和退出的选项卡执行一些更改。

尝试使用p:wizard的flowListener属性

<p:wizard flowListener="#{yourBB.yourMethod}" nextLabel="Next" backLabel="Back" showNavBar="false" widgetVar="myWizard">

您需要getOldStep和getNewStep根据您正在输入和退出的选项卡执行一些更改。

onclick属性用于执行javascript,而不是服务器端方法。很可能您的浏览器开发工具中有错误,因此我必须将该方法放回actionListener,并修复双组件ID的异常?是的,确实。。。。问一个新问题(这一个实际上是一些现有方法的副本。没有时间来找出onclick属性是如何用于执行javascript的,而不是服务器端方法。很可能您的浏览器开发人员工具中有错误,所以我必须将该方法放回actionListener并修复双组件ID的异常?是的,确实如此……并询问一个新的问题。)问题(这一个事实上是一些现有的复制品。但是没有时间去发现