Struts2标签库

一、标签库的组成

Struts2框架的标签库可以分为以下三类

1.用户界面标签(UI标签)

   主要用来生成HTML元素的标签。

   a.表单标签

      主要用于生成HTML页面的FORM元素以及普通表单元素的标签。

   b.非表单标签

      主要用于生成页面上的tree、Tab页等。

2.非用户界面标签(非UI标签)

      主要用于数据访问逻辑控制。数据访问标签主要包含用于输出值栈(ValueStack)中的值。流程控制标签,主要包含用于实现分支,循环等流程控制的标签。


二、标签的属性都可以使用OGNL表达式,struts2标签的属性具有类型,这些类型可以简单地分为字符串类型和非字符串类型。对于字符串类型的属性,如果要访问动态数据,需要使用%{… }这样的语法。

    <s:if test="'foo1' in {'foo1','foo2'}">
       包含
    </s:if>
    <s:else>
       不包含
    </s:else>


Struts2中通用标签可以分为二类:控制标签和数据标签。控制标签用于呈现页面时控制执行流程,数据标签用于访问值栈中的数据

数据标签:

property set push param bean action include url

    1. Set 标签将一个值赋给指定范围内变量。Set标签在某些情况下是比较有用的,例如在页面中多次引用一个复杂的表达式,我们可以将这个表达式赋给一个变量。然后直接引用变量。name value scope三个属性。scope的取值是application || session || page || request || action

         <s:set name="name" value="testname"/> 
         <s:property value="#name"  />

    2.property 标签用于输出值栈中的对象的属性(property)值,使用value属性来指定要输出的对象属性。如果没有指定value属性。那么默认输出栈顶对象

        <s:property value=“username” default=“游客” />

        在ation中定义一个字段username有get和set方法;

        jsp页面输出<s:property value="%{username}" />

控制标签:

控制标签用于完成流程控制,例如分支,循环等操作。控制标签包含下面几个

if:用于控制选择输出。

elseif:同if标签结合使用用来控制选择输出。

else:同if标签结合使用用来控制选择输出。

append:用来将多个集合拼接为一个新的集合。

generator:为一个字符串解析器用来将一个字符串解析为一个集合。

iterator:迭代器用来迭代输出集合数据。

merge:用来将多个集合拼接为一个新的集合,同append有所区别。

sort:用来对集合排序。

subset用来截取集合的部分集合开成新的集合子集合

IF:用于控制选择输出。

<s:set name="age" value="61"/>
<s:if test="${age > 60}">老年人</s:if>
<s:elseif test="${age > 35}"> 中年人</s:elseif>
<s:elseif test="${age > 15}" id="wawa">青年人</s:elseif>
<s:else>少年</s:else>

iterator:迭代器用来迭代输出集合数据。

         <table border="1" width="300">
			<tr>
				<th>当前元素</th>
				<th>当前迭代的元素的总数</th>
				<th>当前迭代的元素的索引</th>
				<th>当前迭代的元素是否是偶数</th>
				<th>当前迭代的元素是否是奇数</th>
				<th>当前迭代的元素是否是第一个元素</th>
				<th>当前迭代的元素是否是最后一个元素</td>
			</tr>
		<s:iterator value="{'javascript','css','html','jsp','php','asp.net'}" id="test" status="status">
			<tr>
				<td><s:property/></td>
				<td><s:property value="#status.count"/></td>
				<td><s:property value="#status.index"/></td>
				<td><s:property value="#status.even"/></td>
				<td><s:property value="#status.odd"/></td>
				<td><s:property value="#status.first"/></td>
				<td><s:property value="#status.last"/></td>
			</tr>
		</s:iterator>
         </table>

append:用来将多个集合拼接为一个新的集合

Merge标签用于合并迭代器其用法与append相似区别就是对合并后的迭代器中的元素迭代的顺序不一样

表单标签:

Struts2的表单标签可以分为两类form标签本身和包装HTML表单元素的其他标签。form标签本身的行为不同于它内部的元素




你可能感兴趣的:(html,struts,iterator,action,generator,merge)