Liferay从mvc portlet中的render请求中获取参数

时间:2015-01-12 17:05:45

标签: liferay

Liferay门户网站存在很大问题。我使用了6.1和6.2,但在我的情况下它们的行为相同。如果有人能帮助我,我将不胜感激。

我已经在互联网上搜索了一年多,我仍然无法找到解决这个问题的方法。解释是我不知道如何完成最简单的任务,或者系统坏了。好的,这就是......

如何在MVC portlet中获取renderRequest中的参数,以及参数中liferay行为的解释是什么?

它应该看起来像是最简单的任务,但显然对我来说它从来没有按预期工作,否则我不会在这里表达我的挫败感。我总是通过使用http servlet请求和其他技巧来解决这个问题。 这就是我想要的:(过去我尝试过所有可以想象的东西,我已经使用了论坛的正确答案,这些答案应该做到这一点,但没有运气)

  • 在一个jsp中我以编程方式创建一个portlet URL:

    HttpServletRequest servletRequest = PortalUtil.getHttpServletRequest(renderRequest);

    PortletURL createTeamURL = PortletURLFactoryUtil.create(servletRequest,portletName,plid,PortletRequest.RENDER_PHASE); createTeamURL.setParameter(" MyParameter",String.valueOf(Page.Pages.CREATE_TEAM));

  • 然后我通过js将当前url更改为此portlet url,并在页面重新加载后,我可以在浏览器地址栏中看到我的参数,正确的portlet id作为前缀并且具有正确的值。

  • 在渲染的jsp中我正在读取参数:

    if((value = renderRequest.getParameter(" MyParameter"))!= null) {     p = Integer.valueOf(value.toString()); }

或者像这样:

if((value = renderRequest.getParameter(renderResponse.getNamespace() + "MyParameter")) != null)
{
    p = Integer.valueOf(value.toString());
}
  • 或者像我在论坛上发现的大量其他尝试,因为官方文档无处可寻(类似于解释的类,方法,属性等)。

结论是每次调用getParameter()都会返回null。

嗯,那是关于它的。我正在认真寻找这个问题的解释,因为它真的让我讨厌我使用的工具箱,并认为它属于垃圾桶。希望我错了。

0 个答案:

没有答案