HI,
我们正在导航,例如从页面A导航到C.当我们在页面C中时,用户单击浏览器的后退按钮并返回到用于调用页面A的先前应用程序。再次,当用户试图调用页面A,他直接导航到页面C,而不是页面A.
这就是我觉得问题所在,可能是JSF上下文正在进入当前页面。我们如何才能解决这个问题。当每个用户点击进入页面A时,他应该能够看到页面A。
任何人都有解决我问题的方法。
答案 0 :(得分:1)
只需检查导航。规则
实施例
JSF 2
<h:commandButton action="/PageA.xhtml" or action="/PageA.xhtml?faces-redirect=true" ... />
JSF 1您需要配置faces-config.xml
faces-config.xml中:
<navigation-rule>
<from-view-id>Page.xhtml</from-view-id>
<navigation-case>
<from-outcome>goToA</from-outcome>
<to-view-id>/PageA.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>goToC</from-outcome>
<to-view-id>/PageC.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<from-view-id>
=“触发”导航的页面。规则。使用*使其成为全局(<from-view-id>*</from-view-id>
)
<from-outcome>
=导航字符串
<to-view-id>
=目标网页
Page.xhtml:
<h:commandButton action="goToA" or action="goToC" ... /> <!-- Navigation string -->
动作应该是导航字符串(from-outcome)或返回有效导航的方法。字符串,例如:
豆
//Returns the nav. string
public String navA() { return "goToA"; }
public String navC() { return "goToC"; }
页
<h:commandButton action="#{bean.navA}" or action="#{bean.navC}" ... />
答案 1 :(得分:1)
不要使用HTTP POST请求进行导航,而是使用HTTP GET请求。
在JSF术语中,请勿使用<h:commandLink>
进行导航,而是使用<h:outputLink>
,<h:link>
甚至普通的<a>
。