2011-09-21 5 views
5

freemarker의 요청 속성에서 값을 확인하려면 어떻게해야합니까? 줄에서>freemarker의 요청 속성 받기

은 "*"가 발생

는 사람이 도와 줄 수

- 나는?>하지만 오류를 얻는 것은 {[ 'servicesettings'] RequestParameters} * $ <의 #if를 시도?

답변

2

FreeMarker 자체가 요청 매개 변수를 노출하지 않기 때문에 이는 웹 응용 프로그램 프레임 워크에 따라 다릅니다. 프레임 워크가 FreeMarker의 확장 기능 중 일부인 freemareker.ext.servlet.FreemarkerServlet을 사용하는 경우는 예외입니다. 또한 대개 MVC 템플릿이나 HTTP/Servlet 전용 템플릿에서 요청 매개 변수에 직접 액세스하면 안됩니다.

오류 메시지에서 작성한 내용에는 구문 오류가 있습니다. 아마 <#if RequestParameters.servicesettings??>을 의미 할 것입니다 (JSP가 아니기 때문에 FreeMarker 태그 안에 ${...} -s를 사용하지 마십시오). 이

+1

나에게 그게 효과가있어 -> Request.requestattribute, 매개 변수에 대한 요청 속성 및 RequestParameters.somevalue를 반환합니다 .. – zDroid

1

우리는 다음과 같이 작성해야 ... 당신은 내가 확실히 알 수없는 데이터 모델에 RequestParameters을 가지고 필요합니다 :

${Request.requestattribute} 
+0

<#if RequestParameters.servicesettings ??> – zDroid

1

사용할 수

${requestParameters.servicesettings}. 
0

에 따르면 JavaDoc of the FreemarkerServlet :

모든 요청, 요청 매개 변수, 세션 및 서블릿 컨텍스트 특성 ava Request, RequestParameters, SessionApplication 개의 변수를 통해 템플릿에 연결할 수 있습니다.

범위 변수는 자동 범위 검색을 통해 사용할 수도 있습니다. 즉, Application.attrName, Session.attrName, Request.attrName을 쓰는 것은 필수가 아닙니다. attrName을 쓰면됩니다. 템플릿에 이러한 변수가 없으면 변수는 Request, 그 다음은 Session, 그리고 마지막으로 Application으로 검색됩니다.

당신은 단순히 쓸 수

:

${attrName} 

은 프리 마커 2.3.27-incubating

과 나를 위해 일한 request.setAttribute('attrName', 'value')

를 사용하면 서블릿 요청 필터에서 설정 한 수도 (요청 속성의 값을 얻기 위해

관련 문제