我正在做一个每页都有“注册”链接的网站,以便用户随时注册。
当用户点击此链接时,他们会被带到注册表单并允许注册。
我希望注册表单上的commandButton的“成功”结果将用户返回到他们的上一页。
我无法弄清楚在JSF中做到这一点的好方法。我目前的计划是将当前的viewId传递到注册页面,如下所示:
<h:link outcome="signup?from=#{facesContext.viewRoot.viewId}">
但我真的不认为这是最好的方式。有什么建议吗?
答案 0 :(得分:1)
这可能不是&#34;最好的&#34;方式,但它绝对是最简单的&#34;办法。
我不确定为什么它不是&#34;最好的&#34;。是因为from
在URL中作为请求参数可见吗?好吧,您总是可以使用<h:commandLink>
将其作为POST请求,并将参数传递为<f:param>
(顺便提一下<h:link>
也可以(并推荐!)然后存储它在视图中或者可能是会话范围的bean。注册页面的POST链接只有较少的用户和SEO友好,但它在跟踪方面更加健壮,因为人们可能不会将页面URL加入书签或共享,其中from
参数会产生意外情况其他人根据书签或共享链接登录后的结果。