常用的ONGL表达式.docx

上传人:b****6 文档编号:7282414 上传时间:2023-01-22 格式:DOCX 页数:10 大小:17.82KB
下载 相关 举报
常用的ONGL表达式.docx_第1页
第1页 / 共10页
常用的ONGL表达式.docx_第2页
第2页 / 共10页
常用的ONGL表达式.docx_第3页
第3页 / 共10页
常用的ONGL表达式.docx_第4页
第4页 / 共10页
常用的ONGL表达式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

常用的ONGL表达式.docx

《常用的ONGL表达式.docx》由会员分享,可在线阅读,更多相关《常用的ONGL表达式.docx(10页珍藏版)》请在冰豆网上搜索。

常用的ONGL表达式.docx

常用的ONGL表达式

常用ONGL表达式

1.基本对象树的访问

对象树的访问就是通过使用点号将对象的引用串联起来进行。

例如:

name,department.name,user.department.factory.manager.name

2.对容器变量的访问

对容器变量的访问,通过#符号加上表达式进行。

例如:

#name,#department.name,#user.department.factory.manager.name

3.使用操作符号

OGNL表达式中能使用的操作符基本跟Java里的操作符一样,除了能使用+,-,*,/,++,--,==,!

=,=等操作符之外,还能使用mod,in,notin等。

4.容器、数组、对象

OGNL支持对数组和ArrayList等容器的顺序访问:

例如:

group.users[0]

同时,OGNL支持对Map的按键值查找:

例如:

#session['mySessionPropKey']

不仅如此,OGNL还支持容器的构造的表达式:

例如:

{"green","red","blue"}构造一个List,#{"key1":

"value1","key2":

"value2","key3":

"value3"}构造一个Map

你也可以通过任意类对象的构造函数进行对象新建:

例如:

new.URL("http:

//localhost/")

5.对静态方法或变量的访问

要引用类的静态方法和字段,他们的表达方式是一样的@class@member或者@class@method(args):

例如:

@com.javaeye.core.Resource@ENABLE,@com.javaeye.core.Resource@getAllResources

6.方法调用

直接通过类似Java的方法调用方式进行,你甚至可以传递参数:

例如:

user.getName(),group.users.size(),group.containsUser(#requestUser)

7.投影和选择

OGNL支持类似数据库中的投影(projection)和选择(selection)。

投影就是选出集合中每个元素的相同属性组成新的集合,类似于关系数据库的字段操作。

投影操作语法为collection.{XXX},其中XXX是这个集合中每个元素的公共属性。

例如:

group.userList.{username}将获得某个group中的所有user的name的列表。

选择就是过滤满足selection条件的集合元素,类似于关系数据库的纪录操作。

选择操作的语法为:

collection.{XYYY},其中X是一个选择操作符,后面则是选择用的逻辑表达式。

而选择操作符有三种:

?

选择满足条件的所有元素

^选择满足条件的第一个元素

$选择满足条件的最后一个元素

例如:

group.userList.{?

#this.name!

=null}将获得某个group中user的name不为空的user的列表。

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

<%@pageimport="com.rao.struts2.bean.Sex"%>

<%@taglibprefix="s"uri="/struts-tags"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

MyJSP'OGNL1.jsp'startingpage

--

-->

<%

request.setAttribute("req","requestscope");

request.getSession().setAttribute("sess","sessionscope");

request.getSession().getServletContext().setAttribute("app",

"aplicationscope");

%>

1.通过ongl表达式获取属性范围中的值


propertyvalue="#request.req"/>


propertyvalue="#session.sess"/>


propertyvalue="#application.app"/>



2.通过ongl表达式创建list集合,并且遍历出集合中的值


setname="list"value="{'eeeee','ddddd','ccccc','bbbbb','aaaaa'}">

set>

iteratorvalue="#list"var="o">

--${o}
-->

property/>


iterator>



3.通过ongl表达式创建Map集合,并且遍历出集合中的值


setname="map"

value="#{'1':

'eeeee','2':

'ddddd','3':

'ccccc','4':

'bbbbb','5':

'aaaaa'}">

set>

iteratorvalue="#map"var="o">

--     ${o.key}->${o.value}
  -->

--  

propertyvalue="#o.key"/>->

propertyvalue="#o.value"/>
  -->

propertyvalue="key"/>->

propertyvalue="value"/>


iterator>



4.通过ongl表达式进行逻辑判断


iftest="'aa'in{'aaa','bbb'}">

aa在集合{'aaa','bbb'}中;

if>

else>

aa不在集合{'aaa','bbb'}中;

else>


iftest="#request.reqnotin#list">

不在集合list中;

if>

else>

在集合list中;

else>



5.通过ongl表达式的投影功能进行数据筛选


setname="list1"value="{1,2,3,4,5}">

set>

iteratorvalue="#list1.{?

#this>2}"var="o">

--#list.{?

#this>2}:

在list1集合迭代的时候,从中筛选出当前迭代对象>2的集合进行显示-->

${o}

iterator>



5.通过ongl表达式访问某个类的静态方法和值


propertyvalue="@java.lang.Math@floor(32.56)"/>

propertyvalue="@com.rao.struts2.action.OGNL1Action@aa"/>




6.ongl表达式迭代标签详细


setname="list2"

value="{'aa','bb','cc','dd','ee','ff','gg','hh','ii','jj'}">

set>

索引

奇?

偶?

首?

尾?

当前迭代数量

iteratorvalue="#list2"var="o"status="s">

iftest="#s.even">pink

if>">

propertyvalue="#s.getIndex()"/>

property/>

iftest="#s.odd">Y

if>

else>N

else>

iftest="#s.even">Y

if>

else>N

else>

iftest="#s.first">Y

if>

else>N

else>

iftest="#s.isLast()">Y

if>

else>N

else>

propertyvalue="#s.getCount()"/>

iterator>



7.ongl表达式:

if/elseif/else详细

<%request.setAttribute("aa",0);%>

iftest="#request.aa>=0&&#request.aa<=4">

在0-4之间;

if>

elseiftest="#request.aa>=4&&#request.aa<=8">

在4-8之间;

elseif>

else>

大于8;

else>



8.ongl表达式:

url详细

<%request.setAttribute("aa","sss");%>

urlaction="testAction"namespace="/aa/bb">

paramname="aa"value="#request.aa">

param>

paramname="id">100

param>

url>


setname="myurl"value="''">

set>

value以字符处理:

  

urlvalue="#myurl">

url>

value明确指定以ONGL表达式处理:

   

urlvalue="%{#myurl}">

url>



9.ongl表达式:

checkboxlist详细

1>.list生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

name:

checkboxlist的名字

list:

checkboxlist要显示的列表

value:

checkboxlist默认被选中的选项,checked=checked

checkboxlistname="checkbox1"list="{'上网','看书','爬山','游泳','唱歌'}"value="{'上网','看书'}">

checkboxlist>


以上生成代码:


</p><p><inputtype="checkbox"name="checkbox1"value="上网"id="checkbox1-1"checked="checked"/></p><p><labelfor="checkbox1-1"class="checkboxLabel">上网</label></p><p><inputtype="checkbox"name="checkbox1"value="看书"id="checkbox1-2"checked="checked"/></p><p><labelfor="checkbox1-2"class="checkboxLabel">看书</label></p><p><inputtype="checkbox"name="checkbox1"value="爬山"id="checkbox1-3"/></p><p><labelfor="checkbox1-3"class="checkboxLabel">爬山</label></p><p><inputtype="checkbox"name="checkbox1"value="游泳"id="checkbox1-4"/></p><p><labelfor="checkbox1-4"class="checkboxLabel">游泳</label></p><p><inputtype="checkbox"name="checkbox1"value="唱歌"id="checkbox1-5"/></p><p><labelfor="checkbox1-5"class="checkboxLabel">唱歌</label>"</p><p>

2>.Map生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

name:

checkboxlist的名字

list:

checkboxlist要显示的列表

listKey:

checkbox的value的值

listValue:

checkbox的lablel(显示的值)

value:

checkboxlist默认被选中的选项,checked=checked

checkboxlistname="checkbox2"list="#{1:

'上网',2:

'看书',3:

'爬山',4:

'游泳',5:

'唱歌'}"listKey="key"listValue="value"value="{1,2,5}">

checkboxlist>


以上生成代码:


</p><p><inputtype="checkbox"name="checkbox2"value="1"id="checkbox2-1"checked="checked"/></p><p><labelfor="checkbox2-1"class="checkboxLabel">上网</label></p><p><inputtype="checkbox"name="checkbox2"value="2"id="checkbox2-2"checked="checked"/></p><p><labelfor="checkbox2-2"class="checkboxLabel">看书</label></p><p><inputtype="checkbox"name="checkbox2"value="3"id="checkbox2-3"/></p><p><labelfor="checkbox2-3"class="checkboxLabel">爬山</label></p><p><inputtype="checkbox"name="checkbox2"value="4"id="checkbox2-4"/></p><p><labelfor="checkbox2-4"class="checkboxLabel">游泳</label></p><p><inputtype="checkbox"name="checkbox2"value="5"id="checkbox2-5"checked="checked"/></p><p><labelfor="checkbox2-5"class="checkboxLabel">唱歌</label></p><p>


10.ongl表达式:

s:

radio详细

<%

Sexsex1=newSex(1,"男");

Sexsex2=newSex(2,"女");

Listlist=newArrayList();

list.add(sex1);

list.add(sex2);

request.setAttribute("sexs",list);

%>

这个与checkboxlist差不多;

1>.如果集合为javabean:

radioname="sex"list="#request.sexs"listKey="id"listValue="name">

radio>

2>.如果集合为list:

radioname="sexList"list="{'男','女'}">

radio>

3>.如果集合为map:

radioname="sexMap"list="#{1:

'男',2:

'女'}"listKey="key"listValue="value">

radio>


11.ongl表达式:

s:

select详细

这个与s:

checkboxlist差不多;

1>.如果集合为javabean:

selectname="sex"list="#request.sexs"listKey="id"listValue="name">

select>

2>.如果集合为list:

selectname="sexList"list="{'男','女'}">

select>

3>.如果集合为map:

selectname="sexMap"list="#{1:

'男',2:

'女'}"listKey="key"listValue="value">

select>

到此主要的ONGL标签已经介绍完毕...由于表单标签相对简单不介绍了....

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1