上一页URL JSF

时间:2012-08-27 10:05:45

标签: java jsf

我正在使用JSF应用程序,我看到浏览器导航栏中显示的URL始终是我刚刚离开的页面,而不是我正在使用的页面。

3 个答案:

答案 0 :(得分:5)

这是因为您从服务器转发(未重定向)到另一个页面。要重定向,您需要在返回时设置以下参数

?faces-redirect=true 

答案 1 :(得分:2)

如果您使用POST进行导航,则会发生这种情况。 commandlinks / CommandButton控件。如果它是纯粹的页面到页面导航,而您实际上不需要向服务器提交任何内容,那么您就会遇到更大的问题。你确实会得到这个讨厌的“副作用”,你的链接将不是可收藏的,也不是搜索可抓取的。正如其他答案所建议的那样,PRG(Post-Redirect-Get)确实会解决可书签性(“一个URL落后”)问题,但它肯定无法解决搜索机器人无法抓取/索引页面的问题。

首先不要使用POST进行普通的页面到页面导航。使用GET。使用<h:link>代替<h:commandLink>,依此类推。在代码中,替换所有

<h:form>
    <h:commandLink value="Next page" action="nextpage" />
</h:form>

通过

<h:link value="Next page" outcome="nextpage" />

另见:

答案 2 :(得分:0)

默认情况下,JSF执行指向原始页面URL的POST操作。如果您使用<navigation-rule>,则可以指定<redirect/>让浏览器执行其他请求,这样目标网页的网址就会显示在导航栏中。