Struts2堆棧session
struts2中的標籤
s:a 中的href 何時使用「# 」 何時該用「%{ }」 何時該用「%{# }」 何時用「」
s:select 中的list 何時使用「# 」 何時該用「%{ }」 何時該用「%{# }」 何時用「」
s:if 中的test 何時使用「# 」 何時該用「%{ }」 何時該用「%{# }」 何時用「」
s:iterator 中的value何時使用「# 」 何時該用「%{ }」 何時該用「%{# }」 何時用「」
s:checkboxlist 中的list 何時使用「# 」 何時該用「%{ }」 何時該用「%{# }」 何時用「」
Struts2中有值堆棧和堆棧上下文的概念,你用 <s:debug />能夠看出.
S標籤中用#能夠取出堆棧上下文中的存放的對象.
用%{}能夠取出存在值堆棧中的Action對象,直接調用它的方法.例如你的Action若是繼承了ActionSupport .那麼在頁面標籤中,用%{getText('key')}的方式能夠拿出國際化信息. %{#}, 這是JSP2.1最新規範中的語法,是Struts2爲其解決兼容性問題而寫成%{#}的
在域對象中使用%{#}
好比%{#session.user.userName}
將得到user對象的 userName屬性值
%{}強調的是從你設定的root點取
%{}用於計算表達式
如%{10+20}結果將輸出30
如%{"a"+"b"}結果將輸出"ab"
#一般強調從上下文取
如#parameters.name[0]等價於request.getParameter("name")
如#session.name等價於session.getAttribute("name")
如#request.name等價於request.getAttribute("name")
%{#}仍然用於計算表達式,只不過操做元能夠是變量
如先定義一個變量
<s:set name="age" value="%{25}"/>
則%{#age}將輸出25,也能夠省略"#",寫爲%{age}
若將age加10,可這麼寫:
%{#age+10},將輸出30.不能省略"#"。也就說變量用於計算時不能省略"#" spa