ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【原创】Struts1.x系列教程(7):Logic标签库

【原创】Struts1.x系列教程(7):Logic标签库

原创 Linux操作系统 作者:银河使者 时间:2009-01-19 22:25:11 0 删除 编辑

本文为原创,如需转载,请注明作者和出处,谢谢!

   
Struts Logic
标签库包含了如下三类标签:
    1. 
循环标签:iterate标签。用于枚举数组、集合类型对象中的元素。

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

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

一、循环标签(iterate)

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

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

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

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

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

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

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

7. scopename变量保存的范围。如果不指定,标签将搜索所有的范围。也就是说,依次按着pagerequestsessionapplication进行搜索,如果在不同的范围有同样的变量名,以先搜索到的为准。   

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

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->  <%@ 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
<StringString> map = new HashMap<StringString>();
      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"/> 
      
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"/> 
      
logic:iterate>    
      
<br>
      
<logic:iterate id="s" name="list" indexId="i">
        list[
<bean:write name="i"/>] = <bean:write name="s"/> 
      
logic:iterate>
      
<br>
      
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
        list[
<bean:write name="i"/>] = <bean:write name="s"/> 
      
logic:iterate>
      
<br>
      
<logic:iterate id="entry" name="entrySet">
        
<bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/> 
      
logic:iterate>
    
body>
  
html>

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

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

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

二、条件处理标签

条件处理标签可分为如下三类:
1. Test
presentnotPresentemptynotEmpty messagesPresentmessagesNotPresent

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

3. 字符串匹配: matchnotMatch

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

 

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 三、流控制标签(redirectforward

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

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 标签用于把当前的请求转发给其他的静态资源、JSP页或Servlet。在功能和使用上和类似。   

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12921506/viewspace-541473/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-02-08

  • 博文量
    169
  • 访问量
    1057969