我们正在使用 Liferay 的自动登录,我需要将查询字符串参数传递给登录页面。例如,我需要能够访问 foo 的值:
http://mysite.com/guest/group?foo=bar
知道我该怎么做,因为显然默认情况下它会在重定向到登录页面的过程中丢失查询字符串:(
谢谢!
您将从 originalHttpRequest 中得到相同的结果。
请使用com.liferay.portal.util.PortalUtil
类。里面有2个方法。因此,首先,通过传递获取 httpRequest,然后通过传递您从中获得的 httpRequestgetHttpServletRequest()
获取portletRequest
原始 httpgetOriginalServletRequest()
请求getHttpServletRequest()
。
根据该请求,尝试搜索 parameter foo
。
您可以使用以下代码:
Object outcome = null;
Map<String, Object> map = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
if (map != null) {
for (String key : map.keySet()) {
if (map.get(key) instanceof HttpServletRequestWrapper) {
HttpServletRequest request = (HttpServletRequest) ((HttpServletRequestWrapper) map.get(key)).getRequest();
outcome = request.getParameter("foo");
break;
}
}
}
我在我的 bean 构造函数中有它。