【发布时间】:2011-11-24 23:12:25
【问题描述】:
我有这样的作文:
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:panelGroup rendered="#{empty userc.userb.user.id}">
<h:panelGrid columns="2" >
<h:outputLink value="system/register.xhtml">Register</h:outputLink>
<h:outputLink value="system/login.xhtml">Login</h:outputLink>
</h:panelGrid>
</h:panelGroup>
</ui:composition>
如果用户点击Login,页面会重定向到system/login.xhtml,这是正确的,但是如果用户再次点击Login,则会重定向到system/system/login.xhtml。
我知道一个解决方案,BalusC 很久以前就帮过我了:
<base href="#{fn:replace(request.requestURL, fn:substring(request.requestURI, 1, fn:length(request.requestURI)), request.contextPath)}/" />
它解决了我的问题,但是如果我在单击某个链接时有一些 ManageBean 实例化,则该 bean 无效。
如何在每个链接页面中维护 url 路径并将会话保持在托管 bean 中?
【问题讨论】:
-
我发布了一个答案,但只是好奇,我不明白你的问题是 bean “无效”。究竟会发生什么?会话真的失效并重新创建了吗?
标签: jsf jsf-2 navigation