Linuxsky
中国青基会
您当前的所在的位置是:主页>自由文档>程序开发> 文章页面

Struts-Logic标签库

去论坛讨论 来源:biggo.cublog.cn 作者: 发布时间:2007-12-15

  此标签库可以分为三种类型:条件、循环、转发/重定向。

  一.) 条件类型

  logic:empty和logic:notEmpty

  logic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmpty()方法来判断)。logic:notEmpty标签类似。

  

  The bean is missing

  

  

  The bean is not missing

  

  上段代码表示当一个名为myBean的bean在所有的scope中都不存在时,输出The bean is missing;存在的话输出The bean is not missing。

  此标签有三个属性:name、property和scope。

  logic:equal, logic:notEqual, logic:lessThan, logic:greaterThan,logic:lessEqual, and logic:greaterEqual

  这堆logic:*equal*标签从名字上就能知道意思,它们使用起来有些笨拙。

  有如下属性:name、property、scope、value、cookie、header、parameter。

  

  equal

  

  

  greaterEqual

  

  logic:present和logic:notPresent

  检查header、request parameter、cookie、JavaBean或JavaBean propertie是否存在且不等于null。另外还可以检查当前用户的身份,使用属性user和role。

  其它的属性有:name、property、scope、cookie、header、parameter。

  

  The bean property bean.prop is present

  

  上段代码检查在page作用域内名为myBean的bean是否有一个prop属性。

  logic:match和logic:notMatch

  比较两字符串是否相等,可以比较字符串的开始的、结尾的或其中的某个部分。

  location属性:指定从某个位置开始进行比较。

  其它的属性有:name、property、scope、value、cookie、header、parameter。

  下面的例子是检查浏览器类型:

  

  Mozilla!

  

  

  Not Mozilla :(

  

  检查bean属性是否匹配"hello world"字符串:

  

  Hello World!

  

  

  I'm so sad and lonely.

  

  检查名为"name"的请求参数是否是"xyz"的子字符串,但是子字符串必须从"xyz"的索引位置1开始(也就是说子字符串必须是"y"或"yz"):

  

  The parameter name is a sub-string of the string xyz from index 1

  

  二.) 循环类型

  logic:iterate

  重复嵌套在此标签体内的指定集合的元素,集合必须为如下类型:array 、Collection(包括ArrayList和Vector)、Enumeration、Iterator、Map(包括HashMap、Hashtable和TreeMap)。例如:

  

  …

  

  …

  

  …

  

  …

  

  上面的代码迭代了一个employee的集合,是department属性employees的一个集合,作用域为request。

  为了输出第五个到第十个employee,需要使用length和offset属性:

  length="10" offset="5">

  …

  

  …

  

  …

  

  …

  

  你可以定义一个变量保存当前的索引值:

  

     

      indexId="index">

      

  1.  

       

      

      

      []

  2.  

      

      

 

  三.) 转发/重定向类型

  logic:forward和logic:redirect

  logic:forward标签和jsp:forward标签和相似,但它可以使用global forward中的一个ActionForward:

  

  ----------------------------------------------------------------------------------------------------------------------------------

  与上面相关的global forward中的代码:

  

  

  

  logic:redirect标签和上面的标签类似,但它默认调用的方法是response.sendRedirect(),取代了上面的requestDispatcher.forward()。最大的不同是它支持所有html:link标签的属性,所以你能够指定request参数:

免费注册 | 网站地图 | RSS订阅 | 友情链接 | 论坛交流 | 用户搏客 | 返回顶端

站内资料部分由本人收集整理,所有文章版权均系原作者和出版者所有,如涉版权问题,恳请来信告知!

本站原创作品除特别声明外皆以创作共用协议发布