在FreeMarker上获取URL的queryString

fra*_*tic 8 java freemarker

在这里学习FTL.

我正在尝试在我的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>
Run Code Online (Sandbox Code Playgroud)

打字查询字符串到URL仍返回http://www.google.comh1.

The*_*bit 17

对于查询字符串?param1=abc&param2=123,您可以像下面那样检索params:

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

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

参数后跟<protocol>:// <host>:<port> <param1>&<param2>&..

例如,在https://www.google.co.in/search?q=StackOverflow中, URL参数名称为q,值为"StackOverflow"


fra*_*tic 5

我想出使用 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">
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作。