【问题标题】:Web Logic Portlet - get query stringWeb Logic Portlet - 获取查询字符串
【发布时间】:2012-10-05 09:05:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: weblogic query-string portlet url-parameters querystringparameter


    【解决方案1】:

    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");
                   ....
            }
    

    【讨论】:

    • 谢谢!我还为此找到了一种解决方法。我从 JavaScript 中获取了 URL 参数并将它们放在隐藏的输入中。然后我可以从请求中获取它们:D.
    • 当你有一个表单要在你的jsp中提交时没关系。
    【解决方案2】:

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

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

    然后从一个叫做referer的header中获取整个url:

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

    认为我应该分享。 谢谢!

    【讨论】:

      猜你喜欢
      • 2016-12-08
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 2011-10-18
      相关资源
      最近更新 更多