0

我正在开发一个部署在 weblogic server 10 下的 portlet。在其他功能中,我的 portlet 需要获取一些在 URL 中传递的参数,并根据每个参数做一些事情。好吧,我的问题是我无法找出获取查询字符串的正确方法。我在互联网上找到了不同的方法,但它们似乎都不适用于 weblogic。我能够获取服务器名称、上下文路径或其他任何内容,但没有查询字符串..

有人知道对此有什么解决方案吗?或者至少给我一个线索?如果我从 JSP 中获取它们,我可以将它们传递给 .java 类吗?

最好的问候, 阿德里安·扎哈里亚

4

2 回答 2

0

Portlet 技术提供了两种主要类型的 url——ActionURL 和 RenderURL。

ActionURL 触发目标 portlet 上的 processAction(操作阶段方法),而 RenderURL 将请求转发到目标 portlet 上的 doView(呈现阶段方法)。

另外,请注意最好避免在呈现阶段发生任何 portlet 状态更改。

通常,将参数传递给 portlet 的 jsp 会...

        PortletURL url = renderResponse.createActionURL();
        url.setParameter("paramName", "paramVal");

        <a href="<%=url.toString()%>">Click Me</a>

在 processAction 或 Action Phase 中检索参数的 portlet 会...

        public void processAction(ActionRequest request, ActionResponse response)
        throws PortletException, PortletSecurityException, IOException {
               ....
               String paramVal = (String)request.getParameter("paramName");
               ....
        }
于 2012-10-08T13:17:49.523 回答
0

我找到了一个更好的解决方案来满足我的需求。我能够像这样获得httprequest:

HttpServletRequest httpRequest = (HttpServletRequest) request.getAttribute("javax.servlet.request");

然后从名为 referer 的标头中获取整个 url:

String referer = httpRequest.getHeader("referer");

以为我应该分享。谢谢 !

于 2012-11-02T14:16:51.517 回答