有没有办法访问 Jetspeed2 Portlet/Portal 中的 URL 参数?
喜欢:www.bla.com/portal/page.psml?param=12345
我只能找到一些liferay(PortalUtil.java)的工具来访问httpservletrequest,但据我所知,jetspeed没有这样的东西?
我认为公共渲染参数可以用于这样的事情,但我在这里有点困惑?以前没有人遇到过这个问题吗?
提前致谢 :)
有没有办法访问 Jetspeed2 Portlet/Portal 中的 URL 参数?
喜欢:www.bla.com/portal/page.psml?param=12345
我只能找到一些liferay(PortalUtil.java)的工具来访问httpservletrequest,但据我所知,jetspeed没有这样的东西?
我认为公共渲染参数可以用于这样的事情,但我在这里有点困惑?以前没有人遇到过这个问题吗?
提前致谢 :)
不知道它是否适用于 jetspeed,但您可以尝试像这样获取 httprequest:
HttpServletRequest httpRequest = (HttpServletRequest) request.getAttribute("javax.servlet.request");
然后在这样的标题中找到查询字符串:
String referer = httpRequest.getHeader("referer");
然后,您将拥有完整的页面引用,以便您可以解析查询字符串。
找到了答案:
在 2.1 版之前,Jetspeed 将门户请求参数与特定于 portlet 的参数合并,有效地允许“共享”参数。这不符合 JSR-168 PLT.11,因此默认情况下现在禁用。
通过设置 merge.portal.parameters.with.portlet.parameters=true 这个特性可以“恢复”。在portal 和portlet 参数同名的情况下,默认情况下portlet 参数将首先在values 数组中提供,但这也可以通过设置merge.portal.parameters.before.portlet.parameters=true 来覆盖
将这两个属性都设置为 true 将提供“旧”的 2.1 之前的行为。注意:对于单个 portlet,可以通过在 jetspeed-portlet.xml 中将这些属性设置为元数据来覆盖这些全局设置
merge.portal.parameters.with.portlet.parameters=false merge.portal.parameters.before.portlet.parameters=false
使用 2.0 规范中的公共渲染参数