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