博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts1.x系列教程(7):Logic标签库
阅读量:6694 次
发布时间:2019-06-25

本文共 3368 字,大约阅读时间需要 11 分钟。

转自:

Struts Logic标签库包含了如下三类标签:

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

2. 条件处理标签:用于是否相等、比较大小等判断。这类标签有emptyequal greaterEqualgreaterThanlessEquallessThanmatchmessagesNotPresentmessagesPresentnotEmptynotEqualnotMatchnotPresentpresent

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

   

一、循环标签(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. scopename变量保存的范围。如果不指定,<logic:iterate>标签将搜索所有的范围。也就是说,依次按着pagerequestsessionapplication进行搜索,如果在不同的范围有同样的变量名,以先搜索到的为准。   

下面的例子演示了<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 presentnotPresentemptynotEmpty messagesPresentmessagesNotPresent

2. 比较:equal, lessThan, lessEqual, greaterThangreaterEqual

3. 字符串匹配: matchnotMatch

    所有的条件处理标签都有nameproperty属性。分别用来指定对象名和属性名。如下面的代码演示了<logic:empty><logic:lessThan>标签的使用:

 

 

  
<
logic:empty 
name
="var"
>
      var为空
  </
logic:empty
>
  <
logic:lessThan 
name
="employee"
 property
="age"
 value
="18"
>
      不符合工作年龄
  </
logic:lessThan
>
   

 

三、流控制标签(redirectforward

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

 

  
<
logic:redirect 
href
="http://www.sina.com.cn"
/>

 

<logic:forward>标签用于把当前的请求转发给其他的静态资源、JSP页或Servlet。在功能和使用上和<jsp:forward>类似。   

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

 

转载地址:http://htpoo.baihongyu.com/

你可能感兴趣的文章
16-组件的创建
查看>>
StatefulSet(一):拓扑状态
查看>>
python例题21--30
查看>>
历届试题 带分数
查看>>
PhotoShop基础工具 -- 移动工具
查看>>
Android学习笔记(八)——四种基本布局
查看>>
爬虫--Scrapy框架的基本使用
查看>>
(最小生成树) Building a Space Station -- POJ -- 2031
查看>>
maven常用技巧
查看>>
Luogu_2876_[USACO07JAN]解决问题Problem Solving
查看>>
C#多态问题
查看>>
如何选择梯度下降法中的学习速率α(Gradient Descent Learning Rate Alpha)
查看>>
Linux shell中运行命令后加上字符“&”的作用
查看>>
Redis----windows下的常用命令
查看>>
python-递归函数
查看>>
Docker以https访问Harbor私有仓库(二)
查看>>
Centos7安装redis
查看>>
股票自动化交易 设想
查看>>
Linux之shell脚本for、while、case语句的高级用法
查看>>
mydumper linux mysql 备份利器
查看>>