从URL中的请求参数重定向

时间:2013-11-29 19:55:16

标签: jsf redirect logout

我有几个页面具有相同的主模板,其中包含带有注销按钮的标题。当我尝试从所有页面注销时,它正常工作,除了一个 - 在其URL中有请求参数的那个。

注销(会话失效)后,我将重定向回登录页面,如下所示:

return "/login.xhtml?faces-redirect=true";

当我按这样的网址注销时,

http://localhost:8080/WPA_MOVIEDATABASE/app/index.xhtml

然后重定向工作正常,我最终进入:

http://localhost:8080/WPA_MOVIEDATABASE/login.xhtml

但是,当我按照这样的请求参数按下logout时,

http://localhost:8080/WPA_MOVIEDATABASE/app/movie.xhtml?id=135

然后我被重定向回没有查询字符串的相同URL:

http://localhost:8080/WPA_MOVIEDATABASE/app/movie.xhtml

我是否正在重定向错误,或者这是否是这类网址的常规内容?

1 个答案:

答案 0 :(得分:0)

在HTTP Server Monitor中,我发现在按下注销按钮后,首先有POST request

http://localhost:8080/WPA_MOVIEDATABASE/app/movie.xhtml

然后会跟随GET request

http://localhost:8080/WPA_MOVIEDATABASE/login.xhtml

那一刻我知道问题出在退出按钮 ..

我正在使用:

<h:form>
   <h:commandLink value="Log out" action="#{userBB.logout}"/>
</h:form>

将代码更改为以下内容解决了问题:

<h:button value="LOG OUT" outcome="#{userBB.logout()}" />


百万感谢BalusC,他的提示让我发现了真正的问题!