您的位置:首页 > 编程语言 > Java开发

struts2标签

2013-12-08 22:41 344 查看
//////////////////////////////////////

 .Struts2标签分类/////////////////

//////////////////////////////////////

    1.分类:

 

        Struts2标签库:

   用户界面标签库  (表单/非表单标签库),

   非用户界面标签库 (控制标签库,数据访问标签库),

   ajax支持标签库

 

     2.导入taglib

 

     <%@taglib prefix="s"  uri="/struts-tags" %>

//////////////////////////////////

 .控制标签///////////////////

/////////////////////////////////

 

1.If elseif  else

 

 描述:

  执行基本的条件流转。

 属性:

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

  名称 必需 类型   描述     备注

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

  test 是  boolean   决定标志里的内容  else标志没有这个参数

          是否显示的表达式

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

  id  否  Object/String 用来标识元素的id

          在UI和表单中为HTML的id属性

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

 例子:

   <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>

 

2.Iterator(迭代)

 

 用于循环数组,集合和Map

 

 属性: 

 value:数组,集合或Map

 var:当前元素

 status:当前元素的状态index,count,even,odd,first,last

 参数:

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

  名称 必需 类型   描述

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

  status 否  String   如果设置此参数,

          一个IteratorStatus的实例

          将会压入每一个遍历的堆栈

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

  value 否  Object/String 要遍历的可枚举的(iteratable)数据源,

          或者将放入的新列表(List)的对像

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

  id  否  Object/String 用来标识元素的id。

          在ui和表单中为HTML的id属性

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

 例子:

 遍历List

 

  <s:iterator value="{'中国', '美国'}" var="cur" status="st">

  <s:property value="#st.count"/>

  <s:property value="#cur"/><br/>

  </s:iterator>

 遍历Map

 

  <s:iterator value="#{1: '中国', 2: '美国', 3: '日本'}" var="cur">

   <s:property value="#cur.key"/>

   <s:property value="#cur.value"/><br/>

  </s:iterator>

 

  例子1:

  <s:iterator value="costList">

   <s:property value="id" />

   <s:property value="feeName" />

   <s:property value="baseDuration" />

   <s:property value="baseCost" />

   <s:property value="unitCost" />

   <s:property value="createTime" />

   <s:property value="startTime" />

   <s:if test="status==0">

     开通

   </s:if>

   <s:if test="status==1">

     暂停

   </s:if>

  </s:iterator>

 例子2:

  <s:iterator begin="1" end="totalPages" var="p">

   <s:if test="#p==page">

    <a href="#" class="current_page"><s:property />

    </a>

   </s:if>

   <s:else>

    <a href="list.action?page=<s:property/>"><s:property/>

    </a>

   </s:else>

  </s:iterator>

 

 

3.集合合并标签 append和merge

 

     将多个集合合并成一个集合

 

 属性::  var -  新集合的名称

 

 示例:

 

            <s:append var="newCollection">

    <s:param value="{'中国', '美国', '日本'}"></s:param>

    <s:param value="{'德国', '泰国', '新加坡'}"></s:param>

   </s:append>

 

    <s:iterator value="#newCollection"var="cur">

    <s:property value="#cur"/><br/>

    </s:iterator>

  

 注:merge用法和append相同,结果的组织不一样.

 

4.字符串分割标签 generator

 

     将一个字符串按照指定分隔符分割成一个字符串数组

 

 属性::

 

  separator: 分隔符

  val(value): 字符串

  count:字符串數組中元素個數

 

 示例:

 

  <s:generator separator="," val="'中,华人,民共和,国'" var="arr"/>

  <s:iterator value="#arr" var="cur">

   <s:property value="#cur"/><Br/>

  </s:iterator>

 

5、集合子集标签  subset

 

     从集合中取出一个子集,

  注意:子集被放在值栈的顶部,subset标签执行完后子集自动移除

 属性::

  source: 集合

  start: 起始索引

  count: 子集中元素个数

 

 示例:

 

 <s:subset source="{'中国', '美国', '日本', '韩国'}" start="1"count="3">

  <s:iterator  var="cur">

   <s:property value="#cur"/>

  </s:iterator>

 </s:subset>

 

6、排序标签 sort

 

     根据定义的排序规则,

  对集合中的元素进行排序,

  排序后生成的新的集合放在值栈顶部,

  标签结束后自动删除.

 

 属性::

 

  comparator: 实现Comparator的类

  source: 集合

 

 示例:

 

 <s:bean name="com.aptech.sorted.LengthSorted" var="ls"/>

 <s:sort comparator="#ls" source="{'中1','88w','777','6666'}">

  <s:iterator>

  <s:property/><br/>

  </s:iterator>

 </s:sort>

/////////////////////////////////////////////////////

 .数据标签////////////////////////////////

/////////////////////////////////////////////////////

 

1.设置变量标签 set

 

 用于设置一个新变量,并将新变量放入指定的作用域中

 

 属性:

 

  Var: 新变量的引用

  Value:值

 

 示例:

 

  <s:set var="v1"value="'中华人民共和国'" scope="page">

  </s:set>

 

  <s:property value="#attr.v1"/>

 

 注:如果不指定,默认放在Stack Context中

 



2.栈顶置值标签 push

 

 将某个值置于值栈的顶部,标签结束后,将从值栈中移除.

 

 属性:

 

  value: 即值

 

 示例:

 

  <s:push value="'中华人民共和国'" > 

   <s:property/> 

  </s:push>

 

3.javabean创建标签 bean

 

 用于创建javabean的实例,

 如果设置了var值,则存于Stack Context,

 否则,标签结束后自动移除.

 

 属性:

 

  name: javabean类名(带包)

  var: 名称

 

 示例:

 

  <s:bean name="com.aptech.entity.Student" var="stu">

   <s:param name="sid">1</s:param>

   <s:param name="sname">张三好</s:param>

   <s:param name="sbirthday">2009-9-9</s:param>

  </s:bean>

 

  <s:property value="#stu.sbirthday"/>



 

4.日期格式化标签 date

 

 格式化日期并输出

 

 属性:

 

  name:日期

  format:格式化字符串

 

 示例:

 

 <%pageContext.setAttribute("d", new Date()); %>

 

 <s:date name="#attr.d" format="yyyy年MM月dd日 HH时mm分ss秒"/>



 

5.调试标签 debug

 

 用于当前环境下Value Stack和stackcontext中保存的数据

 例子:

  <s:debug/>



 

6.资源包含标签 include

 

 用于将一个html,jsp或servlet包含到当前页面中,使用param传递参数

 

 属性:

 

  value:包含页面名称

 

 示例:

 

 <s:include value="MyHtml.html"></s:include>

 

7.URL生成标签 url

 

 生成URL地址,可以通过param标签传递请求参数,如果参数为中文,自动编码

 

 属性:

 

  value: url值

  action: action名称,自动加上.action

 

 示例:

 

  <s:url value="control.jsp"var="url">

   <s:param name="id">中华人民共和国</s:param>

  </s:url>

 

  <a href="<s:propertyvalue="#url" />">链接</a>

  <s:url action="test"var="url2">

  </s:url>

  <s:property value="#url2"/>



 

8.数据输出标签 property

 

 用于输出值栈,Stack Context中的数据

 

 属性:

 

 value:要输出的值

 例子:

  <s:property value="ognl表达式"/>

 

 如果输出值栈中的值,不用#

 如果输出Stack Context中的值,要用#

 如果省略value,表示取出值栈的栈顶对象输出

////////////////////////////////////////

总结

 

OGNL是标签的基础,要理解OGNL的基本使用,在struts2中,OGNL必须和标签紧密配合

 

控制标签包含一组条件判断标签和一组集合遍历和操作标签

 

数据标签包含一组数据访问相关的标签

/////////////////////////////////////////

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: