JSF2 和 PrettyFaces...如何获取原始 URL 或查询字符串?
Posted
技术标签:
【中文标题】JSF2 和 PrettyFaces...如何获取原始 URL 或查询字符串?【英文标题】:JSF2 and PrettyFaces... how does one get the original URL or the query string? 【发布时间】:2012-08-08 14:47:27 【问题描述】:PrettyFaces 是一个非常简单的 URL 重写引擎。各种 SEO 都是可能的,而且 真的很容易。不过我有一个小问题:(
使用漂亮的面孔,我有这个重写规则:
<url-mapping id="blogEntry">
<pattern value="/blog/#shortUrl" />
<view-id value="/blogEntry.jsf" />
</url-mapping>
所以网址栏看起来像:
http://host.com/blog/first-post
重写规则在内部将请求映射到:
http://host.com/blogEntry?shortUrl=first-post
我正在实现 OpenID,这意味着我需要给 OpenID 提供者一个返回 URL。但是,当我执行以下操作时:
originalUrl = Faces.getRequest().getRequestURL().toString()
我明白了:
http://host.com/blogEntry.jsf
getQueryString() 返回一个空字符串
任何人都知道获取纯 URL 的方法:http://host.com/blog/first-post
或至少查询字符串 shortUrl=first-post
【问题讨论】:
你试过 FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("shortUrl");?? @RAvi 是的,它返回一个空地图。 【参考方案1】:您可以使用:PrettyContext.getCurrentInstance().getRequestUrl().toURL()
和 PrettyContext.getCurrentInstance().getRequestQueryString().toQueryString()
类似的论坛帖子: http://ocpsoft.org/support/topic/how-get-the-original-request-uri-from-jsf
【讨论】:
以上是关于JSF2 和 PrettyFaces...如何获取原始 URL 或查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PrettyFaces 的帮助下将长的 Liferay URL 映射到友好的 URL?
Primefaces FileUpload 与 PrettyFaces 和 JSF 2.2.3
JSF 和 PrettyFaces - 如何限制直接 xhtml 请求