Struts1.x系列教程(7):Logic标签库

1.循环标签:iterate标签。用于枚举数组、集合类型对象中的元素。

2.条件处理标签:用于是否相等、比较大小等判断。这类标签有empty、equal 、greaterEqual、greaterThan、lessEqual、lessThan、match、messagesNotPresent、messagesPresent、notEmpty、notEqual、notMatch、notPresent、present。

3.流控制标签:用于转向其他的页面。redirect和forward属性这类标签。

一、循环标签(iterate)

<logic:iterate>标签用于对数组以及集合类型对象中的元素进行枚举。<logic:iterate>标签在功能上和JSTL中的<c:forEach>标签非常相似。<logic:iterate>标签的常用属性的意义和作用如下:

1.id:一个表示集合中的每一个元素的变量,被保存在page范围中。

2.name:一个数组或集合对象名,或是一个包含有getter方法的JavaBean。

3.property:如果name是一个JavaBean,那么property就是这个JavaBean的属性名。<logic:iterate>标签通过这个属性名获得要枚举的数组或集合对象。

4.indexId:循环过程中的索引(从0开始),相当于Java中在for循环中使用变量i来获得循环中每一项的索引。

5.offset:偏移量。也就是从数组或集合的第几个元素开始枚举。

6.length:从offset开始,要枚举的元数的个数。

7.scope:name变量保存的范围。如果不指定,<logic:iterate>标签将搜索所有的范围。也就是说,依次按着page、request、session和application进行搜索,如果在不同的范围有同样的变量名,以先搜索到的为准。

下面的例子演示了<logic:iterate>标签的使用。在<samples工程目录>目录中建立一个iterate.jsp文件,代码如下:

<%@ page  import="java.util.*" pageEncoding="GBK"%>  <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>  <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>  <html><head><title>测试iterate标签</title></head><body>  <%      String array[] = { "bill", "王明", "赵阳" };      pageContext.setAttribute("array", array);      List<String> list = new LinkedList<String>();      list.add("计算机");      list.add("英语");      pageContext.setAttribute("list", list);      pageContext.setAttribute("iterator", list.iterator());      Map<String, String> map = new HashMap<String, String>();      map.put("book", "书");      map.put("apple", "苹果");      pageContext.setAttribute("keySet", map.keySet());      pageContext.setAttribute("entrySet", map.entrySet());  %>      <logic:iterate id="s" name="array" indexId="i" offset="1" length="1">        array[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;      </logic:iterate>      <br>      <jsp:useBean id="form" class="actionform.HtmlTagsForm"/>      <jsp:setProperty name="form" property="hobbies" value="<%= new String[]{"计算机","旅游","摄影"} %>"/>      <logic:iterate id="s" name="form" property="hobbies">        <bean:write name="s"/>&nbsp;      </logic:iterate>      <br>      <logic:iterate id="s" name="list" indexId="i">        list[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;      </logic:iterate>      <br>      <logic:iterate id="s" name="iterator" indexId="i" offset="1">        list[<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;      </logic:iterate>      <br>      <logic:iterate id="entry" name="entrySet">        <bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/>&nbsp;      </logic:iterate>    </body>  </html>

在IE中输入如下的URL测试iterate.jsp:

http://localhost:8080/samples/iterate.jsp

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, 变量
, 标签
, 循环
, 属性
, 枚举类型java配置javabean
, Struts iterator
, 一个
NotEmpty
,以便于您获取更多的相关知识。

时间: 2024-12-21 14:00:32

Struts1.x系列教程(7):Logic标签库的相关文章

Struts1.x系列教程(4):标签库概述与安装

一.Struts1.x标签库概述 Struts的标签库分为如下五类: 1.HTML标签库 在HTML标签库中的定制标签一般和HTML中的tag是一一对应.如HTML中的<form>.各种类型的<input>在HTML标签库中都有定制标签和其对应.HTML标签库的目的是将视图层的组件和控制层连接起来(事实上,不使用HTML标签库中的定制标签也可以完成同样的工作,只是需要写更多的代码). 2.Bean标签库 Bean标签库中的定制标签主要用来向客户端输出文本信息.那么Struts为什么

Struts1.x系列教程(17)

Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源 一.使用IncludeAction类包含Web资源 虽然在JSP页面中可以使用<jsp:include>标签包含另一个Web资源,但Struts框架提倡在包含Web资源时应先经过Struts控制器处理后,再由Struts控制器负责包含Web资源.org.apache.struts.actions.IncludeAction类提供了包含其他Web资源的功能.使用IncludeAc

Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序 一.使用IncludeAction类包含Web资源     虽然在JSP页面中可以使用<jsp:include>标签包含另一个Web资源,但Struts框架提倡在包含Web资源时应先经过Struts控制器处理后,再由Struts控制器负责包含Web资源.org.apache.struts.actions.IncludeAction类提供了包含其他We

Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序

我们曾经在<Struts1.x系列教程(13):国际化>一文中讲过如何通过编程的方式实现多语言的Web页面.在本文中,我们会介绍另外一种实现多语言Web页面的方法.这种方式与<Struts1.x系列教程(13):国际化>一文中所介绍的方法的区别就是无需编写一行代码就可以完成多语言的设置. Struts提供了一个LocaleAction类来做这个工作.LocaleAction类是一个final动作类,因此,LocaleAction类不能被继承.我们可按着如下两步来使用LocaleAc

Struts1.x系列教程(11):Validator验证框架高级应用

在<Struts1.x系列教程(10):Validator验证框架入门>一文中给出的例子中的name.age和email都是简单的属性,如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类),可以使用圆点(.)符号来访问.如我们可以通过设置<field>元素的property属性值为"employee.salary"来验证employee属性中的salary属性. 如果要验证的索引属性,我们可以使用<field>元素的indexedLis

Struts1.x系列教程(9):上传任意多个文件

从<Struts1.x系列教程(8):上传单个文件>中给出的例子可以看出,在Struts1.x中上传单个文件是非常简单的,但在实际应用中,上传文件的个数一般是不确定的,如在网络硬盘中,用户可以根据自己的需要上传任意多个文件(当然,网络硬盘一次上传文件的数目一般也是有上限的,如50个,但用户可以只上传了3个文件,因此,在这种情况下,上传文件的个数也是不确定的).如果读者用过"网易网盘"或其他类似的服务程序,它们的上传文件功能基本上都是根据用户选择的文件多少来添加要上传的文件(

Struts1.x系列教程(6):Bean标签库

Bean标签库共有11个标签.这些标签可以完成如下五种工作: 1.获得HTTP请求信息 2.访问Java对象 3.访问JSP内嵌对象和Struts配置对象 4.访问Web资源和属性文件 5.输出信息 下面我们就来分别介绍一下如何使用Bean标签库中的标签来完成上述的工作. 一.获得HTTP请求信息 使用Bean标签库中的标签可以访问Cookie.HTTP请求头以及请求参数. 1.<bean:cookie>标签 <bean:cookie>标签用于获得一个Cookie对象,并创建一个p

Struts1.x系列教程(5):HTML标签库

一.HTML标签库中的常用标签 1. <html:form>标签 <html:form>标签对应于HTML<form>标签.用于向服务端提交用户输入信息.<html:form>标签和HTML<form>标签在使用方法上基本相同,但它们的一个重要的区别是<html:form>标签的action属性值所指的Struts动作在struts-config.xml中必须正确配置,否则<html:form>标签会因为未找到Struts

Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅<Struts 2系列教程>来比较Struts 1.x和Struts 2.x的相同点和不同点. 一.本文给出的程序要实现什么功能 mystruts是一个录入和查询产品信息的程序.为了方便起见,本例中的产品信息表只包括了产品ID.产品名称和产品价格三个字段.mystruts的主要功能如下: 1.接受用户输入的产品ID.产品名称和产品价格. 2.验证这些字段的合法性.如果某些字段的输入不合法(如未输入产品ID),程序会for

Struts1.x系列教程(22):Tiles框架简介

Tiles框架是Struts的一个插件.我们可以使用Tiles框架来进行页面布局设计.Tiles框架提供了一种模板机制,它可以将网页内容和布局分离,并允许先创建模板,然后在页面中再插入具体的内容. 一.安装Tiles框架 为了使用Tiles,我们必须首先在struts-config.xml文件中声明Tiles,配置代码如下: <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property