我正在将旧的portlet应用程序从WPS5迁移到WPS6。该应用程序正在使用IBM传统容器。根据迁移指南,我只更新一些门户库和一些标签引用。该应用程序仍在使用IBM旧版容器和修改后的Struts Portlet。Websphere Portlet迁移,DispatchAction中缺少参数
当我创造这样一个链接:
<html:link page="/page1.do?method=display">Go to Page 1</html:link>
链接使这样的网址:
/wps/.../...[hash-like chars]_spf_strutsAction=!2fpage1.do!3fmethod%3ddisplay#[hash-like chars]
我使用DispatchAction
,这将查找参数 '方法' 的调度。但是,点击上面的链接无法将'方法'的参数传递给dispatchAction。在请求参数进一步调查发现该键值对:
name: spf_strutsAction
value: !2fpage1.do!3fmethod=display
所以这是很明显的是request.getParameter('method')
返回null,因为该参数request.getParameter('spf_strutsAction')
下埋,因此,不能再出动。
当然,我可以通过读取掩埋参数来强制调度动作。但问题是除'方法'之外还有许多其他参数。
我认为门户服务器应该提供它的PortletRequest的实现。这是PortletRequest.getParameter()在某种程度上不正确吗?或者它是Portlet Struts问题?我如何将这些参数放回请求对象中?