`

Struts Logic标签库详解

阅读更多
一、       进行比较运算的Logic标签:
比较运算标签比较结果为true的条件
比较运算标签
比较结果为true的条件
<logic:equal>
变量等于指定常量
<logic:notEqual>
变量不等于指定常量
<logic:lessThan>
变量小于指定常量
<logic:lessEqual>
变量小于或等于指定常量
<logic:greaterThan>
变量大于指定常量
<logic:greaterEqual>
变量大于或等于指定常量
比较运算标签的value属性指定常量值,可以通过以下方式来设置变量:
?         设置cookie属性,此时变量为cookie属性指定的Cookie的值;
?         设置header属性,此时变量为header属性指定的HTTP请求中的Header信息;
?         设置parameter属性,此时变量为parameter属性指定的请求参数的值;
?         设置name属性,此时name属性指定被比较的变量;
?         同时设置namet属性和property属性,此时name属性指定已经存在的JavaBean,property属性指定JavaBean的属性,被比较的变量为这个属性的值;
注:如果两个字符串都可以成功地转化为数字,就比较数字的大小,否则就进行字符串比较。
二、       进行字符串匹配的Logic标签:
所有的字符串匹配标签都判断一个变量中是否包含指定的常量字符串。字符串匹配标签判断结果为true的条件:
字符串匹配标签
判断结果为true的条件
<logic:match>
变量中包含指定的常量字符串
<logic:notMatch>
变量中不包含指定的常量字符串
字符串匹配标签的value属性指定常量值,可以通过cookie、header、parameter、name和property属性来设置变量,它们的用法和比较运算标签的相应属性相同。
字符串匹配标签的location属性指定子字符串的起始位置,可选值包括:
?         start:子字符串位于母字符串的起始位置;
?         end:子字符串位于母字符串的结尾;
如果没有指定location属性,子字符串可以位于母字符串的任何位置。
三、       判断指定内容是否存在的Logic标签:
1.      <logic:empty><logic:notEmpty>标签:
判断指定的变量是否为null或空字符串。可以通过设置name属性,或者同时设置name属性和property属性,来指定变量。
2.      <logic:present><logic:notPresent>标签:
判断指定的对象是否存在。具有以下属性,分别用于判断某种类型的对象是否存在:
?         cookie属性:判断指定的cookie是否存在;
?         header属性:判断指定的HTTP请求Header是否存在;
?         role属性:判断当前通过权限验证的用户是否具有指定的安全角色,多个安全角色之间以逗号分隔,例:<logic:present role=”role1,role2,role3”>code..</logic:present>;
?         user属性:判断当前通过权限验证的用户是否拥有指定的用户名;
?         parameter属性:判断指定的请求参数是否存在;
?         name属性:判断指定的JavaBean是否存在;
?         同时设置name属性和property属性:name属性指定JavaBean,property属性指定JavaBean的某个属性,判断这个属性是否存在并且是否为null。
1.      <logic:messagesPresent><logic:messagesNotPresent>标签:
判断是否在request范围内存在指定的ActionMessages(或其子类ActionErrors)对象,以及在ActionMessages对象中是否存在特定的消息。具有以下属性:
属性
说明
name
指定在request范围内检索ActionMessages对象的属性key
message
如果为true,则从request范围内检索属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时name属性指定的值无效;
如果为false,则根据name属性指定的属性key,从request范围内检索ActionMessages对象,如果此时没有设置name属性,则默认的属性key为Globals.ERROR_KEY;
该属性的默认值为false。
property
指定从ActionMessages对象中检索某条消息的消息key
 
四、       进行循环遍历的Logic标签:
<logic:iterate>是Logic标签库中最复杂的标签,也是应用最广泛的标签,它能够在一个循环中遍历数组、Collection、Enumeration、Iterator或Map中的所有元素。
1.      遍历集合:
<logic:iterator>标签的name属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后把它存放在page范围内,并以id属性指定的字符串来命名这个元素。
length属性指定需要遍历的元素的数目。offset属性指定开始遍历的起始位置,默认值为“0”,表示从集合的第一个元素开始遍历。indexId属性定义一个代表当前被遍历元素的序号的变量,这个变量被存放在page范围内。
2.      遍历Map
例:<%
  HashMap months = new HashMap();
  months.put(“Jan.”,”January”);
  months.put(“Feb.”,”February”);
  months.put(“Mar.”,”March”);
  request.setAttribute(“months”,months);
  %>
 
  <logic:iterate id=”element” indexed=”index” name=”months”>
      <bean:write name=”index” />.
      <bean:write name=”element” property=”key” />:
      <bean:write name=”element” property=”value” /><br />
  </logic:iterate>
 
3.      设置被遍历的变量:
可以通过以下方式来设置需要遍历的变量:
?     设置name属性,name属性指定需要遍历的集合、数组或Map;
?     设置name属性和property属性,name属性指定一个JavaBean,property属性指定JavaBean的一个属性,这个属性为需要遍历的集合或Map;
?     设置collection属性,collection属性指定一个运行时表达式,表达式的运算结果为需要遍历的集合或Map;
五、       进行请求转发或重定向的Logic标签;
1.        <logic:forward>标签:
用于请求转发,它的name属性指定转发目标,与Struts配置文件中的<global-forwards>元素中的<forward>子元素匹配。
2.        <logic:redirect>标签:
用于请求重定向。它的forward、href和page属性指定重定向目标,这几个重要属性的用法和<html:link>标签中的属性用法很相似。
分享到:
评论

相关推荐

    struts1标签库详解

    Struts1 标签库详解 Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:...

    Struts配置及标签库详解

    3. `struts-logic.tld`:Logic标签库,提供了一些逻辑控制标签,如条件判断(`&lt;logic:equal&gt;`)、循环(`&lt;logic:iterate&gt;`)、导航(`&lt;logic:forward&gt;`)等,帮助开发者在JSP页面中实现复杂的业务逻辑。 4. `struts-...

    struts1标签库详解.doc

    接下来,Logic Tags库提供了逻辑判断和流程控制的标签,如`&lt;logic:iterate&gt;`用于遍历集合,`&lt;logic:present&gt;`和`&lt;logic:notPresent&gt;`检查指定的bean或请求参数是否存在于当前上下文中,`&lt;logic:equal&gt;`和`&lt;logic:not...

    Struts专用标签库详解

    Struts标签库分为两部分:.struts tags 和 .logic tags。.struts tags 主要用于显示数据和表单处理,而.logic tags 则用于处理页面跳转和逻辑控制。这些标签大大减少了开发者对JSP脚本的依赖,提高了代码的可读性和...

    JSP Struts之HTML标签库详解

    5. **Nested标签库**:这个库增强了其他Struts标签的嵌套能力,使得在复杂表单和布局中使用Struts标签更加方便。 Struts标签库的一个重要特性是它们支持属性的嵌套引用,这意味着可以使用`.`来访问对象的深层属性,...

    Struts2标签库详解

    在Struts2框架中,标签库是其核心特性之一,它提供了丰富的预定义标签,使得开发者能够在JSP页面中更方便地处理业务逻辑和展现数据。本文将深入探讨Struts2标签库,帮助你理解并掌握这些标签的用法。 1. **Struts2...

    《精通Java Web整合开发》随书光盘源码__第11章 Struts专用标签库详解

    本章节主要关注第11章,即"Struts专用标签库详解",我们将围绕这一主题展开深入的讨论。 1. **Struts标签库介绍** Struts标签库是用于简化JSP页面开发的一组自定义标签,它们提供了一种更简洁、更面向对象的方式来...

    struts标签的写法

    #### 五、Struts Logic标签库详解 ##### 1. Logic标签库的作用 Logic标签库主要用于实现页面上的逻辑控制,如条件判断、循环等。这对于动态显示内容或根据用户的输入进行响应非常有用。 ##### 2. 常用Logic标签...

    struts1标签库详解借鉴.pdf

    Struts1标签库是用于构建Java Web应用程序的强大工具,它为开发者提供了丰富的标签,简化了视图层的开发。在本文档中,我们将详细探讨Bean Tags、HTML Tags和Logic Tags这三个核心标签库。 1. Bean Tags: Bean ...

    JSP Struts的HTML标签库详解

    3. **Logic标签库**:包含了一系列用于逻辑控制的标签,如`&lt;logic:if&gt;`、`&lt;logic:iterate&gt;`等,它们用于根据条件展示内容或遍历集合。例如,`&lt;logic:equal name="user" property="isAdmin" value="true"&gt;`可以用来...

    struts1.x标签库详解

    Struts1.x 标签库详解 Struts1.x 标签库是 Apache Jakarta 项目的一部分,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean ...

    经典Struts专用标签库详解(代码测试通过)

    Struts标签库是JSP自定义标签的集合,它们提供了用于构建动态Web页面的功能,如表单处理、控制流程等。这些标签与Struts框架紧密结合,可以无缝地与ActionForm、Action和控制器交互,减少硬编码,提高代码可读性。 ...

    struts1.2标签库详解.doc

    Struts 1.2 标签库是 Apache Struts 框架中的一部分,用于简化在 JSP 页面上的开发工作,提高代码的可读性和可维护性。它们分为五个主要的标签库:Bean Tags、HTML Tags、Logic Tags、Nested Tags 和 Tiles Tags。...

    struts2标签库

    ### Struts2 标签库详解 Struts2框架作为Struts1的升级版,在功能性和易用性方面有了显著的提升。对于那些已经熟悉Struts1的人来说,学习Struts2将是一个相对平滑的过程。Struts2标签库是其核心组件之一,它提供了...

    Struts标签库详解

    ### Struts标签库详解 #### 一、Struts标签库概览 Struts是一个用于构建企业级Java Web应用的强大框架,其核心特性之一是提供了一系列的标签库来简化开发过程。Struts提供的五个主要标签库包括HTML、Bean、Logic、...

    Struts之logic标签库详解

    本文将深入探讨Struts的logic标签库,这个库包含了多种用于控制流程和数据比较的标签。 1. **logic:empty** `logic:empty` 标签用于判断一个对象是否为空。如果对象是null,或者是一个空字符串,或者是一个空的...

    struts自定义标签详解

    Struts 是一个强大的Java Web应用程序开发框架,它提供了一套丰富的自定义标签库,使得开发者在构建用户界面时能够更加方便地处理业务逻辑和数据展示。本文将详细讲解Struts中的Bean Tags、HTML Tags和Logic Tags的...

Global site tag (gtag.js) - Google Analytics