I want to know the difference between
PortalUtil.getOriginalServletRequest(portletRequest)
and
PortalUtil.getHttpServletRequest(portletRequest).
查看Liferay 6的源代码(我假设你说的是6),你可以看到PortalUtil.getOriginalServletRequest的作用,我已经将代码放在下面:
public HttpServletRequest getOriginalServletRequest(
HttpServletRequest request) {
HttpServletRequest originalRequest = request;
while (originalRequest.getClass().getName().startsWith(
"com.liferay.")) {
// Get original request so that portlets inside portlets render
// properly
originalRequest = (HttpServletRequest)
((HttpServletRequestWrapper)originalRequest).getRequest();
}
return originalRequest;
}
正如评论所说,“获取原始请求,以便嵌套的门户内部渲染正确”。这种情况可能只适用于嵌套门户或类似情况。大多数情况下,您只需要使用:
PortalUtil.getHttpServletRequest(portletRequest);