在FreeMarker上获取URL的queryString

问题描述 投票:8回答:3

在这里学习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>

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

java freemarker
3个回答
17
投票

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

${RequestParameters.param1}和${RequestParameters.param2}

也可以尝试<#if RequestParameters.bing??>

参数是紧随其后的:// : &..

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


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">

像魅力一样工作。


0
投票

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

<#if RequestParameters.bing??>

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

我希望它可以帮助某人。

© www.soinside.com 2019 - 2024. All rights reserved.