【问题标题】:Continuation-Style Navigation with JSF - Return to Previous Page使用 JSF 的延续式导航 - 返回上一页
【发布时间】:2011-11-30 21:01:40
【问题描述】:

我正在做一个网站,每个页面都有一个“注册”链接,以允许用户随时注册。

当用户点击此链接时,他们会被带到一个注册表单并允许注册。

我希望注册表单上的 commandButton 的“成功”结果将用户返回到他们之前的页面。

我想不出在 JSF 中的好方法。我目前的计划是将当前的 viewId 传递到注册页面中,如下所示:

<h:link outcome="signup?from=#{facesContext.viewRoot.viewId}">

但我真的不认为这是最好的方法。有什么建议吗?

【问题讨论】:

    标签: java jsf navigation


    【解决方案1】:

    这可能不是“最好”的方式,但绝对是“最简单”的方式。

    我不确定为什么它不是“最好的”。是因为 from 在 URL 中作为请求参数可见吗?好吧,您总是可以使用 &lt;h:commandLink&gt; 将其作为 POST 请求并将参数作为 &lt;f:param&gt; 传递(顺便说一下,在 &lt;h:link&gt; 上也可以(并且推荐!)),然后将其存储在视图中,或者也许会话范围的 bean。指向注册页面的 POST 链接对用户和 SEO 的友好度较低,但它在跟踪方面更加强大,因为这样就无法使用 from 参数在页面 URL 中添加书签或共享,这会在其他人登录后产生意外结果基于书签或共享链接。

    无论如何,“最佳”取决于功能要求和所有可能解决方案的(缺点)优势。您只需胜过其中一个即可最好地满足功能要求。

    【讨论】:

    • 在操作导航到注册页面之前,我最终使用f:setPropertyActionListener 将我的 bean 中的参数设置为当前 viewId。在注册 bean 上,提交操作返回该视图 ID,将用户返回到上一页。无缝运行!
    猜你喜欢
    • 2014-08-03
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2011-11-19
    • 1970-01-01
    • 2011-11-03
    相关资源
    最近更新 更多