【发布时间】:2021-03-29 07:39:00
【问题描述】:
从另一个站点重定向后,如何保持活动标签? 在我的界面上,我想在用户使用第三方服务完成信用卡授权后在选项卡窗口上返回信息。
我的前端由 Primefaces 完成。
xhtml 上的选项卡视图:
<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>
backinBean:
private Integer activeTab = 0;
public void onTabChange(TabChangeEvent event) {
TabView tabView = (TabView) event.getComponent();
activeTab = tabView.getChildren().indexOf(event.getTab());
}
【问题讨论】:
-
没有。我尝试使用 ajax 组件,但这也显示了从身份验证服务重定向后网站上的第一个选项卡。
-
你的尝试一定有错误。请用您尝试过的方法更新问题。
-
根据Active Index of tabview not getting updated automatically发布的链接添加测试解决方案
标签: jsf primefaces