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

简介:
 Struts 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  
二、条件处理标签
条件处理标签可分为如下三类:
1. Test
 present notPresent empty notEmpty  messagesPresent messagesNotPresent
2.  比较: equal, lessThan, lessEqual, greaterThan greaterEqual
3.  字符串匹配: match notMatch

    
所有的条件处理标签都有name property 属性。分别用来指定对象名和属性名。如下面的代码演示了<logic:empty> <logic:lessThan> 标签的使用:
 
   < logic:empty  name ="var" >
      var为空
  </ logic:empty >
  < logic:lessThan  name ="employee"  property ="age"  value ="18" >
      不符合工作年龄
  </ logic:lessThan >     
三、流控制标签( redirect forward  

    <logic:redirect>用于重定向到其他的Web资源。用法如下:

   < logic:redirect  href ="http://www.sina.com.cn" />
<logic:forward> 标签用于把当前的请求转发给其他的静态资源、JSP 页或Servlet 。在功能和使用上和<jsp:forward> 类似。    

    关于Logic标签库的更详细的信息请读者参阅Struts的官方网站,URL如下:

http://struts.apache.org/1.2.9/userGuide/struts-logic.html




 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/215233,如需转载请自行联系原作者

相关文章
|
Java Android开发
springMvc37-Unknow tag(c:forEach)错误解决办法,jstl.jar包以及standard.jar包下载与导入
springMvc37-Unknow tag(c:forEach)错误解决办法,jstl.jar包以及standard.jar包下载与导入
85 0
springMvc37-Unknow tag(c:forEach)错误解决办法,jstl.jar包以及standard.jar包下载与导入
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(二)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
74 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(二)
|
存储 Java 容器
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(三)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
103 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(三)
|
XML Java 数据格式
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(一)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
120 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(一)
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(四)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
137 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(四)
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
什么是JSTL JSTL全称为 JSP Standard Tag Library 即JSP标准标签库。 JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等! 为什么要使用JSTL EL表达式不够完美,需要JSTL的支持!在JSP中,我们前面已经用到了EL表达式,体会到了EL表达式的强大功能:使用EL表达式可以很方便地引用一些JavaBean以及其属性,不会抛出NullPointerException之类的错误!但是,EL表达式非常有限,它不能遍历集合,做逻辑的控制。
1352 0
|
XML Java 网络安全
SSH整合方案二(不带hibernate.cfg.xml)
整体结构: 1.引入相关jar包 2.编写实体类和映射文件 package cn.zqr.domain; public class Customer { private Long cust_id; private String cust_name; priv...
943 0