gpt4 book ai didi

java - Websphere Portlet 迁移,DispatchAction 中缺少参数

转载 作者:行者123 更新时间:2023-12-01 16:12:29 25 4
gpt4 key购买 nike

我正在将旧的 portlet 应用程序从 WPS5 迁移到 WPS6。该应用程序正在使用 IBM 旧容器。根据迁移指南,我只更新了一些门户库和一些标签引用。该应用程序仍然使用 IBM 旧版容器和修改后的 Struts Portlet。

当我创建一个链接时:

<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,它将查找参数“method”进行调度。但是,点击上面的链接无法将'method'参数传递给dispatchAction。进一步调查请求参数发现了这个键值对:

name: spf_strutsAction
value: !2fpage1.do!3fmethod=display

很明显,request.getParameter('method') 返回 null,因为该参数被隐藏在 request.getParameter('spf_strutsAction') 下,因此该操作无法发送。

当然,我可以通过读取隐藏的参数来强制执行调度操作。但问题是除了 'method' 之外还有很多其他参数。

我认为门户服务器应该提供其PortletRequest 的实现。 PortletRequest.getParameter() 是否不正确?或者是Portlet Struts 问题?如何将这些参数放回请求对象中?

最佳答案

一些想法:

  1. 您可以使用 portlet 标记来生成链接。
  2. 查看 IBM Portal 6.0 附带的“较新”struts jar
  3. 考虑使用更好的 Portlet Web 框架,例如符合 jsr168 的 Spring Portlet MVC。 IBM 将来不会支持其旧的 portlet 模型。

关于java - Websphere Portlet 迁移,DispatchAction 中缺少参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com