2011-09-21 31 views
5

Làm cách nào để kiểm tra giá trị từ thuộc tính yêu cầu trong freemarker? tôi đã cố gắng < # nếu * $ {RequestParameters [ 'ServiceSettings']} ??> nhưng nhận lỗi ->Lấy các thuộc tính yêu cầu trong freemarker

gặp "*" tại dòng

thể bất cứ ai giúp đỡ?

Trả lời

2

Tùy thuộc vào khung ứng dụng web, vì bản thân FreeMarker không hiển thị các tham số yêu cầu. (Vâng, ngoại trừ nếu khuôn khổ sử dụng freemareker.ext.servlet.FreemarkerServlet là loại mở rộng cho FreeMarker.) Ngoài ra, thông thường bạn không nên truy cập tham số yêu cầu trực tiếp từ mẫu MVC hoặc bất kỳ thứ gì là HTTP/Servlet cụ thể.

Do thông báo lỗi, nội dung bạn viết có một vài lỗi cú pháp ... có thể là <#if RequestParameters.servicesettings??> (không phải JSP - không sử dụng ${...}-bên trong thẻ FreeMarker). Điều này đòi hỏi rằng bạn có RequestParameters trong mô hình dữ liệu, mà tôi không thể biết chắc chắn ...

+1

OK, nó làm việc cho tôi thử -> Request.requestattribute; sẽ trả về thuộc tính request và RequestParameters.somevalue cho tham số .. – zDroid

1

Chúng ta nên viết như thế này:

${Request.requestattribute} 
+0

<#if RequestParameters.servicesettings ??> – zDroid

1

Bạn có thể sử dụng

${requestParameters.servicesettings}. 
0

Theo số JavaDoc of the FreemarkerServlet:

Nó làm cho tất cả yêu cầu, tham số yêu cầu, phiên và thuộc tính ngữ cảnh servlet ava có thể in thành các mẫu thông qua các biến số Request, RequestParameters, SessionApplication.

Các biến phạm vi cũng có sẵn thông qua khám phá phạm vi tự động. Tức là, viết Application.attrName, Session.attrName, Request.attrName là không bắt buộc; đủ để viết attrName và nếu không có biến nào được tạo trong mẫu, biến sẽ tìm kiếm biến trong Request và sau đó là Session và cuối cùng là trong Application.

Bạn chỉ có thể viết:

${attrName} 

để nhận được giá trị của một thuộc tính yêu cầu (mà bạn có thể đã thiết lập trong một bộ lọc yêu cầu servlet sử dụng request.setAttribute('attrName', 'value')

Làm việc cho tôi với Freemarker 2.3.27-incubating

Các vấn đề liên quan