从MVCPortlet中的呈现请求获取Liferay参数

从MVCPortlet中的呈现请求获取Liferay参数,liferay,Liferay,我对Liferay portal有一个大问题。我使用了6.1和6.2,但在我的例子中它们的行为是相同的。如果有人能帮我,我将不胜感激 我在互联网上到处搜索了一年多,但仍然找不到解决这个问题的方法。原因要么是我不知道如何做最简单的任务,要么是系统坏了。好了,就这样 如何在MVCPortlet中从renderRequest中获取参数,当涉及到参数时,liferay行为的解释是什么 这似乎是最简单的任务,但显然对我来说,它从来没有像它应该的那样有效,否则我就不会在这里表达我的沮丧。我总是通过使用HTT

我对Liferay portal有一个大问题。我使用了6.1和6.2,但在我的例子中它们的行为是相同的。如果有人能帮我,我将不胜感激

我在互联网上到处搜索了一年多,但仍然找不到解决这个问题的方法。原因要么是我不知道如何做最简单的任务,要么是系统坏了。好了,就这样

如何在MVCPortlet中从renderRequest中获取参数,当涉及到参数时,liferay行为的解释是什么

这似乎是最简单的任务,但显然对我来说,它从来没有像它应该的那样有效,否则我就不会在这里表达我的沮丧。我总是通过使用HTTPServlet请求和其他技巧来解决这个问题。 这就是我正在尝试的:(在过去,我尝试了所有可以想象到的方法,我使用了论坛上正确的标记答案,这些论坛本来应该做到这一点,但没有运气)

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

    HttpServletRequest-servletRequest=portal.getHttpServletRequest(renderRequest)

    PortletURL createTeamURL=PortletURLFactoryUtil.create(servletRequest、portletName、plid、PortletRequest.RENDER_阶段); createTeamURL.setParameter(“MyParameter”,String.valueOf(Page.Pages.CREATE_TEAM))

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

  • 在呈现的jsp中,我读取如下参数:

    if((value = renderRequest.getParameter(renderResponse.getNamespace() + "MyParameter")) != null)
    {
        p = Integer.valueOf(value.toString());
    }
    
    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


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

你是说你可以通过
HttpServletRequest
获取参数,但宁愿使用
RenderRequest
还是说你根本无法获取参数?是的,如果我记得很清楚的话,我在过去的应用程序中能够以各种不同的方式获取参数,但我真的很有兴趣这样做“直观和逻辑的方式”。我的意思是,有方法向呈现url添加参数并从呈现请求(而不是http请求)获取参数有什么意义如果不方便在portlet中使用参数?参数的名称空间应该解决重复的命名问题,可以将参数逻辑地分组到它们自己的portlet中(除非您希望共享它们)。否则,我将使用DynWebApps。您是否可以粘贴通过
createTeamURL
生成的URL示例,并在读取参数的JSP中打印
renderResponse.getNamespace()
的值。顺便问一下,您是否使用了
ParamUtil.getString(renderRequest,“MyParameter”);
?如果我理解正确,当您访问作为
createTeamURL
生成的URL时,您应该能够在portlet的JSP中读取添加到URL的参数。这两个JSP是否属于同一个portlet?请用这些示例更新您的问题。谢谢