(5)Struts2-Struts的标签库

Struts的标签库

-熟练掌握逻辑标签的使用
-熟练掌握UI标签的使用
-熟练掌握在Struts2的标签中使用OGNL表达式


标签
    为什么使用标签?
        生成页面效果
        简化功能的呈现
        剥离页面中的逻辑代码
        便于美工的维护

作为MVC框架的最重要的两个部分就是控制器和视图,视图部分主要通过标签来实现。
Struts2的标签库基于OGNL实现,相比于Struts1的标签库区别主要在以下几点:
(1)基于OGNL实现的Struts2标签对于集合、数组的访问更加强大。
(2)所有标签类别统一集中在一个库中
(3)整合了DOJO的支持,页面呈现更丰富。
(4)提供了Ajax的支持
(5)不依赖于表现层技术

Struts2标签从功能上看主要分为
    逻辑标签
    UI标签

使用Struts2标签
  1. <%@taglib prefix="s" uri="/struts-tags" %>


逻辑标签
(1)property标签
            用于使用OGNL表达式输出数据
例如:访问context中session的数据
  1. <s:property value="#session.loginUser.userName"/>
访问valueStack中Action的属性
  1. <s:property value="userName"/>

attr表示从request、session、application查找作用域中的数据
  1. <s:property value="#attr.msg"/>

(2)if标签、esle标签
           if标签用于条件判断
           esle标签必须结合if标签使用,表示没有满足的情况
  1. <!-- if标签用于条件判断 -->
  2. <s:if test="#session.loginUser==null">
  3. <a href="#">Login</a>
  4. </s:if>
  5. <s:else>
  6. 欢迎<s:property value="#session.loginUser.userName"/>登陆
  7. </s:else>

(3)set标签
        用来在context中添加一个键值对
            var :写入contextValue中的键
            value:写入contextValue中的值,通过OGNL获取,如果值为基本数据类型通过单引号写入
  1. <s:set var="map" value="#{'a':'A','b':'B'}"></s:set>

(4)iterator标签
        用来迭代集合
            var:写入contextValue中的键
            value:迭代的集合或数组使用OGNL获取
            status:每个元素的状态
  1. <s:iterator var="str" value="#list" status="status">
  2. ${}status.index+1}${str}<br/>
  3. </s:itertor>


(5)append集合
        用于将多个集合拼成一个集合,需要结合<s:param>子标签
                var:写入contextValue中的键
  1. <s:append var="newList">
  2. <s:param value="#list1"></s:param>
  3. <s:param value="#list2"></s:param>
  4. <s:/append>
  5. <s:iterator val="str" value="#newList" status="status">
  6. </s:iterator>

(6)subset标签
           用于对集合进行截取
            source:被截取的集合
            start:截取的起始索引
            count:截取的数量
该标签将产生一个新的集合存入valueStack栈顶,标签运行结束,该集合从栈顶移除,因此需要在标签内进行迭代。
        

(7)bean标签
           用来创建对象
           name:创建对象的class
           var:写入contextValue中的键
  1. <s:bean name="com.niit.bean.User" var="user">
  2. <s:param name="userName" value="tom">
  3. </s:bean>
  4. <s:property value="#user.userName"/>

(8)date标签
        用来格式化时间
            name:时间的值
            format:格式化字符串
            nice:是否显示时间差
  1. <s:date name="#date" format="yyyy-MM-dd hh:mm:ss"/>

(9)include标签
            动态包含    包含jsp界面或servlet界面
            value  包含的页面路径

(10)url标签
            产生一个url地址
            action:跳转的地址
            var:写入contextValue中的键

  1. <s:url var="loginUrl" action="login.action"></s:url>
  2. <s:a href="%{#loginUrl}">login</s:a>
   %{}        表示将字符串按照OGNL表达式来读取,使得超链接既能够使用常值,又可以使用变值。


UI标签
    Struts2內建4个主题,通过theme属性设定
        simple、xhtml、css_xhtml、ajax
常用的UI标签
    form
    textfield
    password
    checkbox
    radio
    select
    。。。。。。
UI标签的使用与普通HTML标签类似,只是标签通过OGNL与Action建立了联系

特殊属性
    lable属性    设定标签对应的文字信息,主题不能为simple
    name属性    值为OGNL表达式,获取valueStack中的Action属性

特殊标签
   checkboxlist标签
    用来设定一组复选框
    list    使用复选框呈现的集合值,使用OGNL来获取
    listValue    通过map集合呈现选项内容的值
    listKey    勾选时获取到的map集合中的键






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值