在FreeMarker上获取URL的queryString

时间:2013-01-17 04:21:20

标签: java freemarker

在这里学习FTL。

我正在尝试在我的FTL页面上添加查询字符串,例如http://localhost/search,我想在网址上添加一个查询字符串,比如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>

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

3 个答案:

答案 0 :(得分:13)

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

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

并尝试<#if RequestParameters.bing??>

后面跟着参数  &LT; protocol&gt;://&lt;主机&gt;:&lt;端口&gt; &lt; param1&gt;&amp;&lt; param2&gt;&amp; ..

例如,https://www.google.co.in/search?q=StackOverflow网址参数名称为 q ,值为“StackOverflow”

答案 1 :(得分:4)

我想出来使用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">

像魅力一样工作。

答案 2 :(得分:0)

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

<#if RequestParameters.bing??>

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

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

相关问题