10.1什么是Struts2标签库
对于一个 MVC 框架来说,重点是实现两个部分,一个是控制器部分,一个是视图部分。
Struts 2 框架也把重点放在了这两部分上:控制器主要由 Action 来提供支持,而视图则是由大量的标签来提供支持。
Struts 2 标签库使用 OGNL 表达式作为基础,实现对于集合、对象访问的功能。
10.2 Struts2标签分类
Struts 2 的标签非常多,大致分为两类,一类是用户界面标签,也称为 UI 标签;另一类
是非用户界面标签,也称为非 UI 标签。
(1) UI 标签主要用来生成 HTML 元素,按其功能可分为三类。
表单标签:主要用于生成 HTML 页面的 form 元素,以及普通表单元素的标签。
非表单标签:主要用于生成页面上的树、Tab 等标签。
Ajax 标签用于 Ajax(Asynchronous JavaScript And XML)支持的标签。
(2) 非 UI 标签主要用于数据访问和逻辑控制,按其功能,可分为两类。
数据标签:主要用来提供数据访问相关的功能。
控制标签:主要用来完成条件逻辑、循环逻辑的控制,也可用于对集合的操作。
10.3 使用Struts2标签
<%@ taglib prefix="s" uri="/struts-tags" %>
10.4 Struts2表单标签
10.5 Struts2数据标签
a) <s:property>
property 标签的作用就是输出指定值。property 标签输出 value 属性指定的值,如果没有指定 value 属性,则默认输出 ValueStack 栈顶的值。
该标签有如下几个属性。
default:可选属性,如果输出的属性值为null,则显示该值
案例:访问该页面的时候,传参和不传参,看看效果
b) <s:date>
c) <s:include>
<s:include value="foot.jsp"></s:include>
10.6 Struts2控制标签
Struts 2 的非 UI 标签包括控制标签和数据标签,主要用于完成流程控制,数据标签主要用于访问 ValueStack 中的数据;控制标签可以完成输出流程控制,例如分支、循环
a) if/else
b) <s:iterator>
iterator 标签的属性如下所示。
1.value:可选属性,指定被迭代的集合,被迭代的集合通常都使用 OGNL 表达式指定;如果没有指定 value 属性,则使用 ValueStack 栈顶的集合。
2. id:可选属性,该属性指定了集合里元素的 ID(现已用 var 替代)。
3.status:可选属性,指定迭代时的 IteratorStatus 实例,通过该实例可以判断当前迭代元素的属性,例如是否是最后一个,以及当前迭代元素的索引等。
4.Begin:开始迭代的索引位置,开始索引从 0 开始。
5.End:结束索引的索引位置,集合元素个数要小于或等于此结束索引。
6.Step:迭代的步长,每次迭代时索引的递增值,默认为 1。
如果指定 status 属性,通过指定该属性,在遍历集合时会有一个 IteratorStatus 实例对象,
该实例对象包含如下几种常用方法。
getCount:返回当前已经遍历的集合元素数目。
isEven::返回当前遍历的元素索引是否为偶数。
isOdd:返回当前遍历的元素索引是否为奇数。
isFirst:返回当前遍历元素是否为集合的第一个元素。
isLast:返回当前遍历元素是否为集合的最后一个元素。
c) 隔行变色效果(2种方式)