如何创建相对于正确上下文的链接?

发布于 2024-12-17 16:38:19 字数 1081 浏览 3 评论 0原文

我有这样的组合:

<!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,这是正确的,但如果用户单击再次登录,重定向到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 中?

I have this composition :

<!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>   

If the user click in Login the page is redirect to system/login.xhtml, which is correct, but if the user, click in Login again, it is redirect to system/system/login.xhtml.
I know a solution for this, which BalusC help me out a long time ago:

<base href="#{fn:replace(request.requestURL, fn:substring(request.requestURI, 1, fn:length(request.requestURI)), request.contextPath)}/" />

It solve my problem, but if I have some ManageBean instancied when I click in some link the bean it's invalidate.

How mantain the url path in every link page and keep the session in the Managed beans ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

×眷恋的温暖 2024-12-24 16:38:19

使用 ;相反。 JSF 将附加正确的上下文路径和 FacesServlet 映射。

<h:link value="Register" outcome="/system/register" />
<h:link value="Login" outcome="/system/login" />

另请参阅:

Use <h:link> instead. JSF will append the right context path and FacesServlet mapping.

<h:link value="Register" outcome="/system/register" />
<h:link value="Login" outcome="/system/login" />

See also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文