【问题标题】:JSF 2.1 Redirect to a portletJSF 2.1 重定向到 portlet
【发布时间】:2012-06-28 13:28:04
【问题描述】:

我将 liferay 升级到 6.0,将 JSF 从 1.2 升级到 2.1。我现有的代码

 ((ActionResponse)context.getExternalContext().getResponse()).sendRedirect( redirect );
context.responseComplete();

这里重定向定义如下:

String redirect = "/namingportal/group/customercenter/accountSearch";

上面的 URL 是请求必须重定向到的 portlet 页面。

开始出现错误: java.lang.IllegalStateException:设置渲染参数已被调用 在 com.liferay.portlet.ActionResponseImpl.sendRedirect(ActionResponseImpl.java:48)

google了一下,发现上面的代码应该换成下面这样:

解决方案一:

context.getExternalContext().redirect(redirect);

当我尝试使用解决方案 1 时,它给了我错误 FacesFileNotFound /namingportal/group/customercenter/accountSearch.xhtml,它实际上是在寻找 xhtml 而不是 portlet。

我的 web.xml 中也有这个:

<context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>

如果有任何其他替代方法可以使用 Liferay 6.0 和 JSF 2.1 从 JSF 托管 bean 方法重定向到 portlet,请告诉我。

谢谢

【问题讨论】:

  • 用浏览器直接打开该页面的URL是什么? IE。当这个页面被正确请求时,你在浏览器地址栏中看到了什么?
  • 这里是托管 bean 应该重定向的正确 URL:https://:/namingportal/group/customercenter/accountSearch。当我直接在浏览器中键入此 URL 时,portlet 会正确呈现。
  • 啊,好吧。这将是特定于 portlet 的 ..
  • 是的,我尝试直接在浏览器的地址栏中输入/粘贴 URL。

标签: java jsf-2 liferay-6


【解决方案1】:

桥符合 ExternalContext.redirect(String) 的 JSR 329 规范要求,它提供了实现您想要做的事情的标准方法。

在大多数情况下,桥接器假定 ExternalContext.redirect(String) 是 JSF 导航规则触发的一部分。但是,有两种方法可以使其适用于您的情况:

1) 将 Bridge.DIRECT_LINK 参数添加到值为“true”的 URL:

String redirect = "/namingportal/group/customercenter/accountSearch?javax.portlet.faces.DirectLink=true";
externalContext.redirect(redirect);

2) 将网址设为绝对网址,如下所示:

PortletRequest portletRequest = externalContext.getRequest();
ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute("THEME_DISPLAY");
String portalURL = themeDisplay.getPortalURL();
String redirect = portalURL + "/namingportal/group/customercenter/accountSearch";
externalContext.redirect(redirect);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2015-03-06
    • 2011-06-24
    • 1970-01-01
    相关资源
    最近更新 更多