struts2中的標籤對於%{}、#、%{#}的使用

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} 
     
若將age10,可這麼寫: 
      %{#age+10}
,將輸出30.不能省略"#"。也就說變量用於計算時不能省略"#" spa

相關文章
相關標籤/搜索