gpt4 book ai didi

jsf - 如何保持p :tabView tab active after roundtrip to external site

转载 作者:行者123 更新时间:2023-12-04 03:30:48 24 4
gpt4 key购买 nike

从另一个站点重定向后如何保持事件选项卡?在我的界面上,我想在用户使用第三方服务完成信用卡授权后在选项卡窗口中返回信息。

我有 Primefaces 做的前端。

xhtml 上的选项卡 View :

    <p:tabView id="mytabs" styleClass="mystyle" style="min-height: 600px;" activeIndex="#{backinBean.getActiveTab}">
<p:tab title="tab" titleStyleClass="mystyle">
<ui:include src="reports.xhtml"/>
</p:tab>
</p:tabView>
</p:tab>
<p:tab id="anothertab" title="Another tab" titleStyleClass="myclass"
<ui:include src="2ndtab.xhtml"/>
</p:tab>
</p:tabView>

我的 backinBean:

  private Integer activeTab = 0;

public Integer getActiveTab() {
return activeTab;
}

public void setActiveTab(Integer activeTab) {
this.activeTab = activeTab;
}

reports.xhtml 包含一个按钮,可将用户引导至信用卡授权服务。授权后,用户将被重定向回我的网站,信息应显示在同一个选项卡上,该选项卡具有授权服务按钮。信息显示正确,但客户端不会使选项卡保持事件状态。如何实现?

来自此 question 的测试解决方案没用。重定向页面后显示 index.xhtml 上的第一个选项卡

index.xhtml 标签

    <p:tabView id="mytabs" styleClass="mystyle" style="min-height: 600px;">
<p:ajax event="tabChange" listener="#{backinBean.onTabChange}" />
<p:tab title="tab" titleStyleClass="mystyle">
<ui:include src="firstTab"/>
</p:tab>
</p:tabView>
</p:tab>
<p:tab id="wantedActiveTab" title="Another tab" titleStyleClass="myclass"
<ui:include src="2ndtab.xhtml"/>
</p:tab>
</p:tabView>

返回 bean :

private Integer activeTab = 0;

public void onTabChange(TabChangeEvent event) {
TabView tabView = (TabView) event.getComponent();
activeTab = tabView.getChildren().indexOf(event.getTab());
}

最佳答案

快到了。您不应该从您的 p:tabView 中删除 activeIndex="#{backinBean.activeTab}"。另外,您的 EL 中有错字。您不应该使用 getActiveTab 来获取 activeTab,只需使用 activeTab

此外,在这种情况下,您的 bean 的范围应设置为 @SessionScoped

另见:

关于jsf - 如何保持p :tabView tab active after roundtrip to external site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66850333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com