在JSR286portlet中访问URL参数?
有没有办法访问Jetspeed2 Portlet/Portal中的URL参数 比如:www.bla.com/portal/page.psml?param=12345 我只能为liferay(PortalTil.java)找到一些工具来访问httpservletrequest,但据我所知,jetspeed没有这样的工具 我以为公共渲染参数可以用于这样的事情,但我在这里有点困惑?以前没有人有过这个问题吗 提前感谢:)找到了答案:在JSR286portlet中访问URL参数?,url,parameters,portlet,jsr286,jetspeed2,Url,Parameters,Portlet,Jsr286,Jetspeed2,有没有办法访问Jetspeed2 Portlet/Portal中的URL参数 比如:www.bla.com/portal/page.psml?param=12345 我只能为liferay(PortalTil.java)找到一些工具来访问httpservletrequest,但据我所知,jetspeed没有这样的工具 我以为公共渲染参数可以用于这样的事情,但我在这里有点困惑?以前没有人有过这个问题吗 提前感谢:)找到了答案: 在版本2.1之前,Jetspeed将门户请求参数与特定于portle
在版本2.1之前,Jetspeed将门户请求参数与特定于portlet的参数合并在一起 参数,有效地允许“共享”参数。 这与JSR-168 PLT.11不兼容,因此默认情况下,现在已禁用 通过设置merge.portal.parameters.with.portlet.parameters=true,此功能可以 被“恢复”。 在门户和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规范中的公共渲染参数,我不知道它是否适用于jetspeed,但您可以尝试按如下方式获取httprequest:
HttpServletRequest httpRequest = (HttpServletRequest) request.getAttribute("javax.servlet.request");
String referer = httpRequest.getHeader("referer");
然后在标题中查找查询字符串,如下所示:
HttpServletRequest httpRequest = (HttpServletRequest) request.getAttribute("javax.servlet.request");
String referer = httpRequest.getHeader("referer");
然后,您将拥有完整的页面引用器,以便可以解析查询字符串