对于一个MVC框架而言,重点是实现两部分:业务逻辑控制部分和视图页面部分。Struts2中的控制器主要由Action来提供支持,而视图则是由大量的标签来提供支持。
一、Struts2标签库的概述
在JavaWeb中,Struts2标签库是一个比较完善,而且功能强大的标签库,它将所有标签都统一到一个标签库中,从而简化了标签的使用,它还提供主题和模板的支持,极大简化了视图页面代码的编写,同时它还提供对Ajax的支持,大大丰富了是视图的表现效果。
二、Struts2标签库的分类
Struts2标签按其功能可以分为两大类:普通标签和UI标签。普通标签主要是在页面生成时,控制执行的流程。UI标签则是以丰富而可重复用的HTML文件来显示数据。
普通标签:Control标签、Data标签
UI标签:Form标签、Non-Form标签、Ajax标签
三、Struts2标签的使用
Struts2标签库被定义在struts-core-***.jar中的META-INF目录中的struts-tags.tld文件。要使用Struts2的标签库,一般需要在JSP文件中使用taglib指令导入Struts2标签库。在JSP文件中,所有的Struts2标签都使用"s"前缀。
<%@ taglib prefix="s" uri="/struts-tags">
1、Struts2的控制标签
常用的逻辑控制标签主要包括:<s:if>、<s:elseif>、<s:else>和<s:iterator>。
(1)<s:if>、<s:elseif>、<s:else>示例
<s:if test = "表达式1">
标签体
</s:if>
<s:elseif test="表达式2">
标签体
</s:elseif>
<s:else>
标签体
</s:else>
需要注意的是:test属性的值都是boolean类型的。
(2)<s:iterator>示例
<s:iterator>标签主要用于对集合中的数据进行迭代。下面的代码是通过判断其所在索引的奇偶性来设置表格的颜色。
<s:iterator var="name" value="{'java','python','C','C++','spark'}" status="st">
<s:if test="#st.odd">
<tr style="background-color:white;">
<td><s:property value="name"></