在freemarker中获取请求属性

时间:2011-09-21 12:04:07

标签: freemarker

如何在freemarker中检查请求属性中的值? 我试过< #if * $ {RequestParameters ['servicesettings']} ??>但得到错误 - >

行遇到“*”

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

它取决于Web应用程序框架,因为FreeMarker本身不公开请求参数。 (好吧,除非框架使用freemareker.ext.servlet.FreemarkerServlet,这是FreeMarker的扩展。)此外,通常你不应该直接从 MVC 模板或任何东西访问请求参数。 HTTP / Servlet特定。

从错误消息开始,你写的内容有一些语法错误......可能你的意思是<#if RequestParameters.servicesettings??>(它不是JSP - 不要在FreeMarker标签内使用${...} - s)。这将要求您在数据模型中有RequestParameters,我无法确定...

答案 1 :(得分:1)

我们应该这样写:

${Request.requestattribute}

答案 2 :(得分:1)

您可以使用

${requestParameters.servicesettings}.

答案 3 :(得分:0)

根据JavaDoc of the FreemarkerServlet

  

它通过RequestRequestParametersSessionApplication变量使模板可以使用所有请求,请求参数,会话和servlet上下文属性。

     

范围变量也可通过自动范围发现获得。也就是说,写Application.attrNameSession.attrNameRequest.attrName不是强制性的;编写attrName就足够了,如果模板中没有创建这样的变量,它将在Request中搜索变量,然后在Session中搜索,最后在Application中搜索

您可以简单地写一下:

${attrName}

获取请求属性的值(您可能使用request.setAttribute('attrName', 'value')

在servlet请求过滤器中设置了该属性的值

使用Freemarker 2.3.27-incubating

为我工作