2011-09-21 12 views

Odpowiedz

2

To zależy od struktury aplikacji WWW, ponieważ sam FreeMarker nie ujawnia parametrów żądania. (No cóż, z wyjątkiem sytuacji, gdy struktura używa freemareker.ext.servlet.FreemarkerServlet, która jest rodzajem rozszerzenia do FreeMarker.) Ponadto, zazwyczaj nie powinieneś uzyskiwać dostępu do parametrów żądania bezpośrednio z szablonu MVC, ani niczego, co jest specyficzne dla HTTP/Servlet.

Po wyświetleniu komunikatu o błędzie napisałeś kilka błędów składniowych ... prawdopodobnie oznaczałeś <#if RequestParameters.servicesettings??> (nie jest to JSP - nie używaj ${...} -s wewnątrz znaczników FreeMarker). Wymaga to, że masz RequestParameters w segmencie danych modelu, że nie może wiedzieć na pewno ...

+1

Mam to, działa dla mnie try -> Request.requestattribute; zwróci atrybut żądania i RequestParameters.somevalue dla parametru .. – zDroid

1

Powinniśmy napisać tak:

${Request.requestattribute} 
+0

<#if RequestParameters.servicesettings ??> – zDroid

1

Można użyć

${requestParameters.servicesettings}. 
0

Według JavaDoc of the FreemarkerServlet:

To sprawia, że ​​wszystkie żądania, parametry żądania, sesji i kontekstu serwletu atrybuty Ava można przekształcać w szablony za pomocą zmiennych Request, RequestParameters, i Application.

Zmienne zasięgu są również dostępne za pośrednictwem automatycznego wykrywania zakresu. Oznacza to, że pisanie Application.attrName, Session.attrName, Request.attrName nie jest obowiązkowe; wystarczy napisać attrName, a jeśli taka zmienna nie została utworzona w szablonie, przeszuka zmienną w Request, a następnie w Session, a na końcu w Application.

można po prostu napisać:

${attrName} 

aby uzyskać wartość atrybutu żądania (które mogły zostać ustawione w filtrze żądanie serwletu przy użyciu request.setAttribute('attrName', 'value')

pracował dla mnie z Freemarker 2.3.27-incubating

Powiązane problemy