Struts2常用标签

介绍

  1. Struts的作用

标签提供了主题,模板的支持,简化了视图页面的编写。语序在页面中使用自定义组件,满足了项目中页面显示复杂,多变的需求。
2. 分类
* UI标签,用于生成HTML元素的标签,可以分为表单标签和非表单标签
* 非UI标签,主要用于数据访问,逻辑控制等的标签。包括用于实现分支、循环等流程控制的标签和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能)
* ajax标签

  1. 使用前的准备

    • 要在使用标签的jsp页面引入标签库
    <%@ taglib url="/struts-tags" prefix="s"%>
  • 在web.xml中药声明要使用的标签,这个是2.3版本的引入方式
    <filter>
        <filter-name>struts2</filter-name>
            <filter-class>org.apche.strtues.dispatcher.ng.flter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
  1. 标签的使用

    • property标签

    用于输出指定的值:

    <s:property value="${name}" />
    <s:property value="name">
    <s:property value=${@cm.csdn.hr.domain.Uer@study()}>

    以上可以方位某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。

    假设在action中设置了不同作用域的类
    不同的作用域的标签的访问

    • 获取request中的对象值
    <s:property value="#request.user.name">
    <s:property value="#request.user['name']">
    <s:prpperty value="#attr.user.name">

    其中attr是按照page-request-session-appliction的顺序来找的

    • 获取session中的值(和取request中的值差不多)
    <s:property value="#session.user.name">
  • 获取application中的对象的值
    <s:property value="#application.user.name">

5.iterator标签的使用

  • list集合

先设置set集合 value
statue可选属性,该属性指定迭代时的iteratorStatus实例

list存放在request中,使用value=”#request.list”

statu.odd返回当前被迭代元素的索引是否是奇数

    <s:set name="list" value="value{'a','b','c','d'}"><s:set>
        <s:iterator var="ent" value="#request.list" status="statu">
            <s:if tets="%{#statu.odd}">
            <font color="red"><s:property value="#ent">
            </font>
        </s:if>
        <s:property value="#ent" />
        </s:else>
    </s:iterator>
  • map集合中的使用

map集合的特点:语法格式:#{key:value,key1:value1,key2:value2,…}
以上的语法就直接生成了一个Map类的集合,该Map对象中的每个key-value对象之间用英文的冒号隔开,对个元素之间用逗号。

    <s:set var="map" value="#{'1':'张三','2':张三}"></s:set>
    //遍历map
    <br />
    <s:iterator value="#map">
        <s:property value="key" />:::<s:property value="value" />
        <br />
    </s:iterator>
  • 集合的遍历

遍历出价格大于3000的

    <s:iterator var="user" value="session['users']">
        <s:if test="%{#user['price']>3000}">
            <s:property value="#user['price']">
        </s:if>
    </s:iterator>

    <hr color="blue" /><!--$是取出介个大于3000的最后一个值-->
    <s:iterator var="u" value="session.users.{$(#this['price']>3000)}">
        <s:property value="price" />
    <s:iterator>

uers是User的对象,price是User中的一个属性

简述一下iterator的介绍
iterator标签用于对集合进行迭代,这里的集合包含list,set和数组。
其中:

    value:可选属性,指定被集合迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合
    id:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
        int getCount(),返回当前迭代了几个元素。
        int getIndex(),返回当前迭代元素的索引。
        boolean isEven(),返回当前被迭代元素的索引是否是偶数。
        boolean isOdd(),返回当前被迭代元素是否是第一个奇数。
        boolean idFirst(),返回当前被迭代元素是否是第一个元素。
        boolean isLast(),返回当前被迭代元素是否是最后一个元素。
  1. if…else的使用
    <s:set name="age" value="21" />
    <s:if test="#age==23">
        23
    </s:if>
    <s:esleif test="#age==21">
        21
    </s:eslseif>
    <s:else>
        not find
    </s:else>
  1. 表单

通过登录代码来查看


系统中使用的一些标签
  • 在form_include.jsp中
    <s:textfield key="name" type="text" cssClass="text"></s:textfield>
  • 在edit.jsp中
    <s:form action="action" method="post" id="formId">
        <s:hidden id="parameterId" name="parameterId"></s:hidden>
</s:form>

解释一下这几个常用的

  • textfield

在系统中,from_include.jsp页面是对节点详细信息进行展示的页面

通过设置key值,来取得节点的name值

  • form和传统的form没什么大的区别
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值