在freemarker中获取请求属性

发布于 2024-12-05 14:24:46 字数 137 浏览 1 评论 0原文

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

在行中遇到“*”

有人可以帮忙吗?

How do I check a value from the request attribute in freemarker?
I tried <#if *${RequestParameters['servicesettings']} ??> but getting errors ->

Encountered "*" at line

Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浅唱ヾ落雨殇 2024-12-12 14:24:46

它取决于Web应用程序框架,因为FreeMarker本身不公开请求参数。 (嗯,除非框架使用 Freemareker.ext.servlet.FreemarkerServlet ,它是 FreeMarker 的扩展。)此外,通常您不应该直接从 MVC< /em> 模板,或任何特定于 HTTP/Servlet 的内容。

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

It depends on the Web application framework, because FreeMarker itself doesn't expose the request parameters. (Well, except if the framework uses freemareker.ext.servlet.FreemarkerServlet which is kind of an extension to FreeMarker.) Also, usually you shouldn't access request parameters directly from an MVC template, or anything that is HTTP/Servlet specific.

As of the error message, what you have written has a few syntax errors... probably you meant <#if RequestParameters.servicesettings??> (it's not JSP - don't use ${...}-s inside FreeMarker tags). This will require that you have RequestParameters in the data-model, that I can't know for sure...

提笔落墨 2024-12-12 14:24:46

我们应该这样写:

${Request.requestattribute}

We should write like this:

${Request.requestattribute}
岛歌少女 2024-12-12 14:24:46

你可以使用

${requestParameters.servicesettings}.

You can use

${requestParameters.servicesettings}.
〆一缕阳光ご 2024-12-12 14:24:46

根据 FreemarkerServlet 的 JavaDoc

它通过 RequestRequestParametersSessionRequest 使所有请求、请求参数、会话和 servlet 上下文属性对模板可用。代码>应用程序变量。

范围变量也可以通过自动范围发现获得。即Application.attrNameSession.attrNameRequest.attrName不是强制写的;写attrName就可以了,如果模板中没有创建这样的变量,就会在Request中查找该变量,然后在Session中查找该变量,最后在应用程序中。

您可以简单地编写:

${attrName}

获取请求属性的值(您可能已使用 request.setAttribute('attrName', 'value') 在 servlet 请求过滤器中设置了该值

与 Freemarker 一起为我工作 <代码>2.3.27-孵化

According to the JavaDoc of the FreemarkerServlet:

It makes all request, request parameters, session, and servlet context attributes available to templates through Request, RequestParameters, Session, and Application variables.

The scope variables are also available via automatic scope discovery. That is, writing Application.attrName, Session.attrName, Request.attrName is not mandatory; it's enough to write attrName, and if no such variable was created in the template, it will search the variable in Request, and then in Session, and finally in Application.

You can simply write:

${attrName}

to get the value of a request attribute (that you might have set in a servlet request filter using request.setAttribute('attrName', 'value')

Worked for me with Freemarker 2.3.27-incubating

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文