【Struts2五】ValueStack以及ognl表达式二(常用标签)

Ognl常用标签:

 1、s:debug

如果把该标签放入到s:iterator中可以看到当前正在迭代的元素的状态

  2、s:property

1、输出

2、value属性:值能直接跟ognl表达式

3、如果value属性不写,则默认输出栈顶的元素

   3:s:iterator标签

(1)、iterator迭代Collection,Map,Object[],还可以以组合的形式迭代

(2)、当前正在迭代的元素在栈顶

(3)、如果value属性不写,则默认迭代栈顶的元素

(4)、如果迭代的是map元素,当前正在迭代的元素是Entry<key,value>,这个时候key和value是对象栈

中的属性

(5)、var属性,var=‘aa‘相当于给当前正在迭代的元素在map栈又存放了一次,key值为aa

(6)、status属性,可以获取当前正在迭代的元素的信息count,index,odd,event,查看IteratorStatus这个类

(7)、end,first,step属性

   4、s:if  s:elseif

注意:不能使用单个字符进行判断

<s:if test="name==1">   <s:if test="name==‘1‘">这种写法不对

========================示例:

1.在Action中将数据存入valuestack中;


public String putListToMap(){

List<Person> personList = new ArrayList<Person>();

Person p= null;

for (int i
= 0; i < 50; i++) {

p= new Person();

if(i%3==0){

p.setPid( "aa");

p.setUsername( "P"+i);

}

if(i%3==1){

p.setPid( "bb");

p.setUsername( "p"+i);

}

if(i%3==2){

p.setPid( "cc");

p.setUsername( "p"+i);

}

personList.add(p);

}

ActionContext. getContext().put("pList",
personList);

return "list_map" ;

}

2.在jsp页面迭代显示集合数据:


<style type= "text/css">

.odd{

background-color:red ;

}

.even{

background-color:blue ;

}

.blue{

background-color:yellow ;

}

.red{

background-color:red ;

}

</style >


<s:iterator value= "#pList" var ="aa" status="statu">

<!-- 每三行变色 status 使用s:debug可以查看到该类为IteratorStatus
-->

<tr class= "<s:property value="#statu.index%3==0?‘blue‘:‘red‘" />">

<%--<tr class="<s:property
value="#statu.even?‘even‘:‘odd‘"/>">

--%>

<td>

<s:property value= "pid"/>

</td>

<td>

<s:property value= "username"/>

</td>

<td>

<s:property value="#statu.count" />

</td>

<td>

<s:if test= "#statu.odd">

奇数行

</s:if>

<s:elseif test= "#statu.even">

偶数行

</s:elseif>

</td>

<td>

<s:property value="#statu.index" />

</td>

<td>

<s:if test="pid==‘aa‘||pid==‘bb‘" >

<input type= "button" name="adsf" value="修改">

</s:if>

</td>

<td>

<s:if test="pid==‘cc‘||pid==‘aa‘" >

<input type= "button" name="adsf" value="删除">

</s:if>

</td>

</tr>

</s:iterator>

显示结果图:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-05 15:07:28

【Struts2五】ValueStack以及ognl表达式二(常用标签)的相关文章

【Struts2五】ValueStack以及ognl表达式二(经常使用标签)

Ognl经常使用标签:  1.s:debug 假设把该标签放入到s:iterator中能够看到当前正在迭代的元素的状态   2.s:property 1.输出 2.value属性:值能直接跟ognl表达式 3.假设value属性不写.则默认输出栈顶的元素    3:s:iterator标签 (1).iterator迭代Collection,Map,Object[],还能够以组合的形式迭代 (2).当前正在迭代的元素在栈顶 (3).假设value属性不写,则默认迭代栈顶的元素 (4).假设迭代的是

Struts2学习笔记(OGNL表达式)

Struts2学习笔记(OGNL表达式) Struts 2支持以下几种表达式语言: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言: JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言: Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python.Ruby和Smarttalk等)的一些起特性: Velocity,严格来说不是表达式语言,它是一种基于Ja

struts标签、OGNL表达式、JSTL标签、EL表达式

Struts标签.Ognl表达式.el表达式.jstl标签库这四者之间的关系和各自作用 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用    Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求. Struts2的标签库有一个巨大的改进之

ognl表达式和s标签儿

1.ognl表达式: Ognl上下文对象:(他是一个可以存储数据的空间结构,而且在这个结构中包含之前 jsp中的作用域对象) (放在 value stack控件),当前访问的Action这个上下文对象是ognl对象的一部分. 对于这个ognl对象来讲,我们是使用ognl的表达式来访问的. Ognl表达式语法,#表达式://如果访问的是值栈的栈顶,可以不使用#. 1)ognl 具有访问ognl空间属性的作用 2)ognl不具有输出功能,需要结合s标签. 3)Ognl可以获得action对象的属性.

Struts2之 OGNL表达式和值栈

技术分析之OGNL表达式概述(了解)        1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写        * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象        * 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性        2. Struts2框架使用OGNL作为默认的表达式语言 

(补充)9.Struts2中的OGNL表达式

OGNL表达式概述 1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象 * 通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性 2. Struts2框架使用OGNL作为默认的表达式语言 * OGNL是一种比EL强大很多倍的语言 * xwork提供 OGNL表达

OGNL表达式的基本语法和用法------2

OGNL表达式的基本语法和用法 首先我们一起来看一下OGNL中的#.%和$符号.关于OGNL各种用法总结参看:http://blog.163.com/[email protected]/blog/static/72069304201032081730286/ 一.OGNL中的#.%和$符号 #.%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分.在这里我们简单介绍它们的相应用途. 1.#符号的三种用法 1)访问非根对象属性,例如示例中的#session.msg表达

数据:OGNL表达式是

核心:后台将数据放入OGNL,前台通过OGNL取数据 ActionContext.getContext().getValueStack().push(fu);     ActionContext.getContext().getValueStack().set("key","value"); ServletContext就是application 获取值: saleName = request.getParameter("saleName");

OGNL表达式介绍

OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性. -------百度百科 从语言角度来说:它是一个功能强大的表达式语言,用来获取和设置 java 对象的属性 ,它旨在提供一个更高抽象度语法来对 java 对象图进行导航.另外,jav