OGNL表達式標簽中的值有三種:
1.直接是OGNL表達式。
2.字符串需轉義自OGNL表達式。
1)OGNL表達式轉換為字符串顯示,需要用''(單引號)引起來。
2)轉為OGNL表達式的字符串,需要加%{字符串}來轉換
3.只能是字符串。
標簽:
一、數據標簽
1.property -- 顯示數據
value -- 要顯示的內容,放OGNL表達式 如果要顯示字符串,需要用''引起來。
escape -- true/false 默認是true, 改為false顯示html效果標簽
default 默認值,放字符串,不是放OGNL
<s:property value="'<h1>HAHA<h1>'" escape="false" default="[這是默認值]"/>
2.set -- 設置一個新變量,賦值
var -- 新變量名
scope --范圍 page/request/session/application
value --變量值,OGNL表達式,字符串要加單引號
<s:set var="ah" value="newsList" scope="request"></s:set> <s:property value="#request.ah"/>
3.url -- 生成網址
var -- 變量名
value--要生成的URL地址,字符串可轉義自OGNL,要手動寫出完整的地址。
action -- 要生成的URL地址,字符串可轉義自OGNL,生成出絕對路徑。一般用這個
<s:url var="uu" action="News_getAll"></s:url> <s:property value="#uu"/>
4.bean -- JavaBean的實現類
name -- 要實例化的Java類
var -- 變量名
5.param -- 生成參數
name -- 標簽名
value -- OGNL表達式,加單引號
<s:bean name="com.itnba.maya.domel.News" var="bbb"> <s:param name="biaoti" value="'這是自定義的標題'"></s:param> </s:bean> <s:property value="#bbb.biaoti"/>
<s:url var="uu" action="News_getAll"> <s:param name="ids" value="'k001'"></s:param> </s:url> <s:property value="#uu"/>
6.date -- 格式化輸出日期
name -- 要格式化的日期值 --- OGNL表達式
format --- 格式化顯示的格式。
<s:date name="date" format="yyyy年MM月dd日" var="mydate"/> <s:property value="mydate"/>
二、控制標簽
1.if...else if ...else
test -- 表格式 OGNL
2.iterator
var
value --OGNL
status :even,odd,first,last,index,count
begin
end
step
<s:iterator var="aa" value="newsList" status="st"> <s:if test="#st.even"> <div style="background-color:#666666;"> </s:if> <s:else> <div> </s:else> <s:property value="#st.index+1"/>. <s:property value="#aa.biaoti"/> </div> </s:iterator>
3.append/merge/subset
var--新的對象名
<param> 子元素
<s:set value="{'aa','bb','cc'}" var="aa"></s:set> <s:set value="{'11','22','33'}" var="bb"></s:set> <s:append var="all"> <s:param name="one" value="#aa"></s:param> <s:param name="two" value="#bb"></s:param> </s:append>
<s:set value="{'aa','bb','cc'}" var="aa"></s:set> <s:set value="{'11','22','33'}" var="bb"></s:set> <s:merge var="all"> <s:param name="one" value="#aa"></s:param> <s:param name="two" value="#bb"></s:param> </s:merge> <s:iterator value="#all" var="t"> <s:property value="#t"/><br> </s:iterator>
4.generater
seperator--分隔符
val--被分隔的字符串
var -- 分隔成的數組名
<s:generator val="'a,b,c,d'" separator="," var="s"></s:generator> <s:iterator value="#s" var="t"> <s:property value="#t"/><br> </s:iterator>
5.sorted
source --- 集合
comparator -- 對比器對象
<s:set value="{'aaaa','bb','ccc','dddd'}" var="arr"></s:set> <s:bean name="com.itnba.maya.domel.Duibiqi" var="duibiqi"></s:bean> <s:sort comparator="duibiqi" var="sss" source="#arr" > <s:iterator var="str"> <s:property value="#str"/><br> </s:iterator> </s:sort> <s:property value="#arr.size()"/>
還需要建一個類,實現Comparator接口。用來做對比器
package com.itnba.maya.domel; import java.util.Comparator; public class Duibiqi implements Comparator<String>{ @Override public int compare(String o1, String o2) { if(o1.length() > o2.length()){ return -1; } else if(o1.length() == o2.length()){ return 0; } else{ return 1; } } }