2011-09-21 25 views

Respuesta

2

Depende del marco de la aplicación web, porque FreeMarker no expone los parámetros de la solicitud. (Bueno, excepto si el framework usa freemareker.ext.servlet.FreemarkerServlet que es una especie de extensión de FreeMarker). Además, por lo general, no debe acceder a los parámetros de solicitud directamente desde una plantilla MVC, o cualquier cosa que sea específica de HTTP/Servlet.

A partir del mensaje de error, lo que ha escrito tiene algunos errores de sintaxis ... probablemente se refirió a <#if RequestParameters.servicesettings??> (no es JSP; no use ${...} -s dentro de las etiquetas de FreeMarker). Para ello será necesario que usted tiene RequestParameters en el modelo de datos, que no puedo saber con seguridad ...

+1

Lo tengo, funciona para mí try -> Request.requestattribute; devolvería el atributo de solicitud y RequestParameters.somevalue para el parámetro .. – zDroid

1

Debemos escribir así:

${Request.requestattribute} 
+0

<#if RequestParameters.servicesettings ??> – zDroid

1

Usted puede utilizar

${requestParameters.servicesettings}. 
0

de acuerdo con la JavaDoc of the FreemarkerServlet:

que hace toda solicitud, parámetros de la petición, la sesión, y el contexto servlet atributos ava disponible para plantillas a través de las variables Request, RequestParameters, Session y Application.

Las variables de ámbito también están disponibles a través del descubrimiento automático del alcance. Es decir, escribir Application.attrName, Session.attrName, Request.attrName no es obligatorio; es suficiente para escribir attrName, y si no se creó dicha variable en la plantilla, buscará la variable en Request, y luego en Session, y finalmente en Application.

Simplemente puede escribir:

${attrName} 

para obtener el valor de un atributo de la petición (que podría haber puesto en un filtro de petición de servlet utilizando request.setAttribute('attrName', 'value')

a mí me funcionó con Freemarker 2.3.27-incubating

Cuestiones relacionadas