`

struts2的标签说明(iterator,el,ognl)

阅读更多

转载:

http://blog.csdn.net/zidasine/archive/2009/03/05/3959023.aspx

 

一、iterator.

这个标签主要的的作用就是跌代出集合。

value属性表示需要跌代显示出来的值。

status属性,又来保存跌代时的一些状态值。

注:1.如果需要引用valueStack中的值,需要使用这样的形式。

<s:iterator value="#userList" /> //userList在action部分被保存在Request中,所以使用#加属性名

来引用值。

2.如果集合的值是通过action的方法,假设我们的action中有一个set/getListMenu方法,返回一个List

集合。我们可以使用如下的形式来引用这个集合,并用s:iterator来输出。

<s:iterator value="listMenu" />

3.iterator的value使用定义好的方式,如:

<s:iterator value="{1,2,3,4}" />      //这样跌代输出的值就是1.2.3.4这四个值。

 

 

二、iterator中输出具体值,如果,在上面我们的list中的对象,有两个属性,都是String类型,一个

是name,一个是url。

我们可以这样来引用。

1.      <s:property value="name" />       //这样我们将可以输出跌代对象的name属性值。

2.      如果我们希望使用<s:url />来将跳转过后的url进行处理,该如何来做?

<s:url value="%{url}"/>            //%{}ognl的表达式,这样的值能够将url的值进行<s:url/>的处理
实际上就是转为绝对路径。这样,我们就可以对付一些因跳转换产生的路径问题。

 原因:因为<s:iteratotr />以后,当前的对象应该就在ValueStack顶部了,这样当然的url实际上

就是对象的url  属性了

 

 

三、使用ognl输出对应的值。

<s:textfield name="loginName" value="%{#request.loginNames}"/>

使用此表达式,会生成一个文本框,并且,如果request.attribute中有loginNames属性,将会做为些文

本框的默认值。

如果只使用#request.loginNames在struts2的标签内部,是不会显示任何值的,注意外面加上的%{}附号

,才会被正常的使用。如果希望如EL语言一样直接输出文件,如在一个<a></a>之间的innerHTML文本为#request.loginNames的值,我们只要使用:<s:property value="#request.loginNames" />使可以正常使用!

注:

1.${}是EL语言的 %{}这样的形式是ognl表过式语言的,在struts2的标签内部,使用%{}这样的形式,在

标签外部可以使用${}EL语言的方式。如果在struts2的标签内部使用${}这样的方式,会出现以下的错误

提示:

According to TLD or attribute directive in tag file, attribute value does not accept any

expressions

 

2.很多时候,我们使用struts2的一些标签,属性是需要接受集合的,如果集合是保存在

request,session,或者是值栈(非根对象的栈顶),可以使用#变量名的方式,如果获取的值是在Action

中通过特定的方法来获取,就需要使用如 value="userList"这样的方式,只是去掉了前面的#

分享到:
评论

相关推荐

    struts2标签和OGNL表达式.pdf

    OGNL(Object-Graph Navigation Language)是一...以上是关于OGNL和Struts2标签的详细知识点,这些知识点是构建和维护基于Struts2框架的Web应用所必需的。掌握这些知识对于提升Java Web开发的效率和质量具有重要意义。

    struts2中的ognl

    - 如果某些Struts2标签不支持OGNL表达式,可以通过`%{}`包裹OGNL表达式,使它们能够识别并执行。 8. **Struts2标签与OGNL**: - `&lt;s:set&gt;`标签常用来设置值栈中的变量。 - `&lt;s:iterator&gt;`将当前迭代对象置于栈顶...

    Struts2常用标签

    在实际使用中,结合OGNL表达式语言,Struts2标签可以非常灵活地处理各种复杂情况。例如,我们可以利用OGNL动态地计算条件、访问对象属性等。总的来说,掌握Struts2的标签库对于提高Struts2应用的开发质量和效率至关...

    struts2中OGNL的一些概念及原理说明

    ### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...

    struts2标签详解

    Struts2标签通常与OGNL(Object-Graph Navigation Language)一起使用,OGNL是一种强大的表达式语言,用于获取和设置对象的属性。例如,`&lt;s:property value="%{user.name}" /&gt;`会输出用户对象的name属性值。 6. **...

    struts2-OGNL表达式测试

    这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...

    struts2标签.zip

    本压缩包“struts2标签.zip”很可能包含了关于Struts2标签库的一些示例和教程,帮助开发者更好地理解和使用这些标签。 Struts2的标签库分为核心标签库、OGNL标签库、 Tiles标签库以及一些自定义标签。以下将详细...

    struts2标签介绍

    通过对Struts2中的非UI标签的详细介绍,我们可以看出Struts2标签库的强大之处在于它不仅提供了丰富的功能,而且还极大地提高了开发效率。例如,`if`、`elseif`和`else`标签能够方便地实现条件判断逻辑,而`iterator`...

    struts2标签解释(自制版)

    Struts2标签是Java开发中一个非常重要的概念,它是基于MVC框架Struts2的核心特性之一,用于构建动态用户界面。这些标签简化了视图层的开发,使得开发者能够更高效地实现页面逻辑,同时也提高了代码的可读性和可维护...

    struts2综合复习习题

    - Struts2标签库提供了丰富的标签用于简化页面开发,这些标签支持使用EL表达式来访问应用中的数据。因此,选项B是正确的。至于其他选项: - A. 导入struts标签库的正确代码应该是`&lt;%@ taglib uri="/struts-tags" ...

    JSTL、EL、ONGL、Struts标签的区别

    - **用法**: OGNL 通常与 Struts2 标签一起使用,不能单独在 Struts 页面中使用;而 EL 可以直接在 JSP 页面中使用。 - **取值**: OGNL 更适合于复杂的对象图导航,而 EL 更适用于简单的数据访问。 **与 JSTL 的...

    Struts2标签使用

    #### 二、Struts2标签库概述 Struts2标签库是一系列HTML标签的封装,它们被设计用于与Struts2框架集成工作。这些标签能够动态地生成HTML元素,并且支持表达式语言(EL)和OGNL语法,使得开发者能够更方便地处理数据...

    s:iterator的EL表达式原理

    EL表达式和Struts2的`s:iterator`标签结合使用,使得在JSP页面上处理和显示数据变得更加简单和直观。通过OGNL,我们可以方便地访问对象的深层属性,而`s:iterator`则负责遍历集合,非常适合展示列表或数组数据。在...

    ognl表达式 ognl表达式

    在Struts2中,OGNL的核心组件之一是`ValueStack`,它充当了OGNL表达式的数据源。`ValueStack`是一个存储数据的栈结构,包含了所有的模型对象以及请求、会话和应用范围的数据。开发者可以通过EL表达式直接访问`...

    中文-Struts2-Tags-API chm格式 非常详细的标签使用说明有例子

    此外,了解Struts2标签API还涉及到对OGNL(Object-Graph Navigation Language)的理解,这是Struts2中用于数据绑定和表达式求值的语言。通过OGNL,开发者可以在标签中灵活地访问和操作Action中的属性。 总的来说,这...

    struts2的s标签

    ### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...

    struts 2.0系列2常用的Struts 2.0的标签(Tag)介绍

    在Struts 2.0中,所有的标签都位于"struts-tags"命名空间下,且支持多种表达语言,如OGNL、JSTL、Groovy和Velocity,相比Struts 1.x的EL,提供了更为丰富的表达能力。 接下来,我们详细讨论一些常用的Struts 2.0...

Global site tag (gtag.js) - Google Analytics