FreeMarker 獲取頁面request、session
使用Request裡的Attribute值最簡單的方法就是直接${AttributeName}或者安全一點:${AttributeName!"default Value"}
1.取Application範圍的物件
xml 程式碼
1. <#if Application.myApplicationAttribute?exists>
2. ${Application.myApplicationAttribute}
3. </#if>
或者 : ${Application.myApplicationAttribute!"default value"}
2.取session範圍的物件
xml 程式碼
1. <#if Session.mySessionAttribute?exists>
2. ${Session.mySessionAttribute}
3. </#if>
或者 : ${Session.mySessionAttribute!"default value"}
3.取request範圍的物件
xml 程式碼
1. <#if Request.myRequestAttribute?exists>
2. ${Request.myRequestAttribute}
3. </#if>
或者 : ${Request.myRequestAttribute!"default value"}
4.取request parameter範圍的物件
xml 程式碼
1. <#if Parameters.myParameter?exists>
2. ${Parameters.myParameter}
3. </#if>
或者 : ${Parameters.myParameter!"default value"}
5.取context parameter範圍的物件
xml 程式碼
1. ${stack.findValue('#myContextParam')}
request 物件直接對應 HttpServletResponse
例如 獲取 當前網頁地址: ${request.requestURL}
客戶端IP地址: ${request.getRemoteAddr()} 或者 ${request.remoteAddr}
提交方式: ${request.method}
等等
Request: 用於獲取Request物件中的attribute物件。
例如:${Request["myRequestAttribute"]} 這樣是直接在頁面輸出屬性值。相當於request.getAtrribute("myRequestAttribute");
如果要對這個值進行判斷就必須使用如下格式:<#if Request["myRequestAttribute"]="edit">
或者 : ${Request["myRequestAttribute"]!"default value"}
Session:用於獲取Session 物件中的attribute物件。
用法參照Request的用法。
Application:用於獲取 Application(ServletContext)物件中的attribute物件。
用法參照Request的用法。
RequestParameters:用 於獲取Request物件的parameter引數(瀏覽器端傳送的請求資料)
例如:${RequestParameters["myRequestAttribute"]}等同於 request.getParameter("myRequestAttribute");
Parameters:屬性獲取,依次從 RequestParameters、Request、Session、Application物件中獲取對應屬性/引數,一旦獲取,則不再向下查詢。
例如:${Parameters["myRequestAttribute"]}
- ${Request["a"]}
- ${RequestParameters["a"]}
- ${Session ["a"]}
- ${Application ["a"]}
- ${JspTaglibs ["a"]}
- 注意RequestParameters等內部物件時常不能獲得所以要:
- ${RequestParameters?default({})["_errors"]?default("params")}
- ${Request["request"]?default("request")}
- ${Session["session"]?default("session")}
- ${Application["ctx"]?default("ctx")}
- ${RequestParameters?default({})?keys?size}
- ${Request?keys?first}
- Freemarker可以直接取pageContext,requestAttribute,session,application中的資料,就是不能取requestParameter;