[size=medium]变量解析/决定(Resolution)
在FreeMarker中, 变量将会在多个位置进行寻找, 顺序如下:
1. 值栈(value stack)
2. action上下文(action context)
3. Request范围(scope)
4. Session范围(scope)
5. Application范围(scope)
6. 内建变量
注意action上下文在value stack后进行搜索. 这意味着你可以引用变量而不必使用标准的符号(#)前缀,不像在JSP中使用ww:property中必须使用的那种语法(译者注:现在在JSP中也可以不用#而访问默认的ValueStack). 这是一个很好的便利特性, 但是小心, 它有时也会把你陷进去.
<@ww.url id="url" value="http://www.yahoo.com"/>
Click <a xhref="${url}">here</a>!
Webwork-FreeMarker整合提供的内建变量如下:
Name Description
stack 值栈本身, 方便使用 ${stack.findString('ognl expr')}的方式调用
action 最近执行的action
response HttpServletResponse
res 与response相同
request HttpServletRequest
req 与reqeust相同
session HttpSession
application ServletContext
base request的上下文路径(context path)
应用说明:
${base} 可以代替这样使用了${req.contextPath},
直接访问session["attribute"];
。。。[/size]
在FreeMarker中, 变量将会在多个位置进行寻找, 顺序如下:
1. 值栈(value stack)
2. action上下文(action context)
3. Request范围(scope)
4. Session范围(scope)
5. Application范围(scope)
6. 内建变量
注意action上下文在value stack后进行搜索. 这意味着你可以引用变量而不必使用标准的符号(#)前缀,不像在JSP中使用ww:property中必须使用的那种语法(译者注:现在在JSP中也可以不用#而访问默认的ValueStack). 这是一个很好的便利特性, 但是小心, 它有时也会把你陷进去.
<@ww.url id="url" value="http://www.yahoo.com"/>
Click <a xhref="${url}">here</a>!
Webwork-FreeMarker整合提供的内建变量如下:
Name Description
stack 值栈本身, 方便使用 ${stack.findString('ognl expr')}的方式调用
action 最近执行的action
response HttpServletResponse
res 与response相同
request HttpServletRequest
req 与reqeust相同
session HttpSession
application ServletContext
base request的上下文路径(context path)
应用说明:
${base} 可以代替这样使用了${req.contextPath},
直接访问session["attribute"];
。。。[/size]