<li>property:<s:property value="username"/></li>
<li>property取值爲字符串:<s:property value="'username'"/></li>
<li>property設定默認值:<s:property value="admin" default="管理員"/></li>
若值棧中無admin則用"管理員"爲默認值
<li>property 設置html:<s:property value="'<hr/>'" escape="false"/></li>
set標籤,默認scope爲action即request和actioncontext,如沒有其他scope,則到相應scope中去取值
即可,且name和id都已deprecated,使用var value 和 scope即可。
<li> set 設定adminname值(默認爲request和actioncontext):
<s:set var="adminName" value="username"/></li>
<li>set 從request取值:<s:property value="#request.adminName"/></li>
<li>set 從actioncontext取值:<s:property value="#adminName"/></li>
s debug內容中無值原因是debug內容還沒有將request中值包含進去就顯示出來了。
<li>set 設定範圍:<s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 從相應範圍取值:<%=pageContext.getAttribute("adminPassword")%></li>此爲jsp取值方式
<li>set 設定scope:<s:set var="adminPassword" value="password" scope="session"/></li>
<li>set 從相應範圍取值:<s:property value="#session.adminPassword"/></li>
<li>bean 查看debug情況:
<s:bean name="com.xlt.struts2.tags.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>若爲value="oudy"表示爲ognl表達式則
oudy爲對象
</s:bean></li>
<s:bean name="com.xlt.struts2.tags.Dog">
<s:param name="name" value="'pp'"></s:param>
<s:property value="name"/></s:bean>
沒有使用var則在<s:bean/>範圍外就沒有該對象了所以訪問不到,若使用了var 會將其放入
actioncontext中即使脫離<s:bean/>範圍<s:property value="#myDog.name"/>同樣可以訪問到。
window-preference-file association *.html可以修改默認打開html的工具。
<li>include _include1.html 包含靜態英文文件,說明%用法
<s:set var="includePage" value="'/_include1.html'"/>
<s:include value="%{#includePage}"></s:include></li>
%{}表示將{}中表達式視爲ognl表達式。include不常用。
$用於i18n和struts配置文件
#取得actioncontext中的值
%將原本的文本屬性解析爲ognl,對於本來就是ognl的屬性不起作用
<s:property value 爲ognl <s:include value裏不強轉爲普通字符串
window-preferences-content assist 裏auto activation delay可以設置提示時間
<li>if elseif else:
『』 age=<s:property value="#parameters.age[0]"/><br/>
<s:if test="#parameters.age[0]<0">wrong age!</s:if>
<s:elseif test="#parameters.age[0]<20">too young</s:elseif>
<s:else>yeah!</s:else><br/>
上段中『』後可以用set標籤:
<s:set var="age" value="#parameters.age[0]"/>後面代碼中test="#age"替換即可。
<li>遍歷集合{1,2,3}:<br/>
<s:iterator value="{1,2,3}">
<s:property/></s:iterator></li>
<li>自定義變量<br/>
<s:iterator value="{'aaa','bbb','ccc'}" var="x">
<s:property value="#x.toUpperCase()">
</s:iterator></li>
<li>使用status:<br/>
<s:iterator value="{'aaa','bbb','ccc'}" status="status">
<s:property/>
遍歷過的元素總數:{s:property value="#status.count"/}|
遍歷過的元素索引:{s:property value ="#status.index"/}|
當前是偶數?:<s:property value="#status.even"/>|
當前是奇數?:<s:property value="#status.odd"/>|
是第一個元素嗎?:<s:property value="#status.first"/>|
是最後一個元素嗎?:<s:property value="#status.last"><br/></s:iterator>
<li>定義map:<br/>
<s:iterator value="#{1:'a',2:'b',3:'c'}">
<s:property value="key"/>|<s:property value="value"/><br/>
</s:iterator></li>
iterator 可以遍歷collections(list,set ,stack,queue),map,enumeration,iterator,array
UI標籤 theme主題:simple,xhtml(默認的主題),css_xhtml,ajax
可以通過在struts.xml中添加自定義的主題:
<constant name="struts.ui.theme" value="mytheme"/>來配置ui主題,mytheme爲src包下
template.mytheme
建議的方式:把所有主題定義爲simple,fielderror特殊處理,自己控制其他標籤的展現。