【问题标题】:get queryString of a URL on FreeMarker在 FreeMarker 上获取 URL 的 queryString
【发布时间】:2012-12-31 14:00:49
【问题描述】:

在这里学习超光速。

我正在尝试在我的 FTL 页面上添加一个查询字符串,例如 http://localhost/search,我想在 URL 上添加一个查询字符串,例如 http://localhost/search?bing,以便用户可以使用默认设置切换没有查询字符串。

但是,我无法从 URL 中获取 queryString。 我也试图避免在这方面使用 JavaScript 解决方案。

这是我的代码:

<#if RequestParameters.bing?exists >
    <#assign useServer = "http://www.bing.com">
<#else>
    <#assign useServer = "http://www.google.com">
</#if>

<h1>${useServer}</h1>

在 url 中输入 queryString 仍然会在 h1 上返回 http://www.google.com

【问题讨论】:

    标签: java freemarker


    【解决方案1】:

    对于查询字符串?param1=abc&amp;param2=123,您可以检索如下参数:

    ${RequestParameters.param1} & ${RequestParameters.param2}

    也可以试试&lt;#if RequestParameters.bing??&gt;

    参数是后面的东西 ://:?&&..

    例如在https://www.google.co.in/search?q=StackOverflow URL 参数名称是 q 并且值是 'StackOverflow'

    【讨论】:

      【解决方案2】:

      我想出了使用 request.getParameter("param")

      <#if (request.getParameter("param")?has_content && request.getParameter("param")?lower_case?matches("true"))>
          <#assign useServer = "http://bing.com">
      <#else>
          <#assign useServer = "http://google.com">
      

      工作就像一个魅力。

      【讨论】:

      • 我的请求评估为空。如何传递请求?
      • 在 Liferay 7.2 上运行良好
      【解决方案3】:

      我尝试用第一篇文章的代码检查请求参数:

      <#if RequestParameters.bing??>
      

      但是什么也没发生。 然后我检查了&lt;#if RequestParameters.param1??&gt; 然后我得到了结果。

      我希望它对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-03-13
        • 2010-12-08
        • 2012-10-26
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-13
        相关资源
        最近更新 更多