OGNL表達式


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;
        }
    }

}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM