struts2标签

//

 .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必须和标签紧密配合
 
控制标签包含一组条件判断标签和一组集合遍历和操作标签
 
数据标签包含一组数据访问相关的标签

/

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值