SSH框架学习笔记(四)----struts2的标签

  1. struts2标签的分类:
    1. UI标签:用于生产HTML元素的标签
      1. 表单标签
      2. 非表单标签
    2. 非UI标签:用于数据访问,逻辑控制
      1. 流程控制标签
      2. 数据访问签
    3. Ajax标签:用于Ajax支持的标签
  2. struts2标签使用:
    1. 导入标签库:<%@taglib prefix="s" uri="/struts-tags"%>
    2. 使用标签:<s:...>
  3. struts2的OGNL表达式语言:
    1. OGNL的集合操作:
      1. 直接创建List类型集合的语法:{e1,e2,e3...}
      2. 直接生成Map类型的集合的语法:#{key1:value1,key2:value2,Key3:value3,..}
      3. OGNL提供in和not in 两个运算符判断元素是否在集合中
        <s:if test="'foo' in {'foo','bar'}">
        包含
        </s:if>
        <s:else>
        不包含
        </s:else>
      4. OGNL允许通过某个规则取得集合子集:
        1. ?:取出所有符合选择逻辑的子集:person.relatives.{? #this.gender == 'male'}
        2. ^:取出符合选择逻辑的第一个元素
        3. $:取出符合选择逻辑的最后一个元素
    2. 访问静态变量和方法
      1. OGNL访问静态变量:<s:property value="@java.lang.Math@PI"/>
      2. OGNL访问静态方法:首先要配置struts常量:<constant name="struts.ognl.allowStaticMethodAccess" value=true>,<s:property value="@java.lang.System@Getenv('JAVA_HOME')">
  4. 控制标签:
    1. if/elseif/else标签:根据一个boolean表达式觉定是否计算,输出标签体内容
      <s:if test="表达式">
          标签体
      </s:if>
      <s:elseif test="表达式">
          标签体
      </s:elseif>
      <s:else>
          标签体
      </s:else>
    2. iterator标签:用于对集合进行迭代
      1. 3个属性:
        1. value:指定被迭代的集合
        2. id:指定集合中的元素
        3. status:指定迭代式IteratorStatus实例
      2. 例子
        <s:iterator value="{'123','222',''sdfsd}",id="name",status="st">
            <tr>
                <td><s:property value="#st.count"/> <s:property value="name"></td>
            </tr>
        </s:iterator>
    3. append标签:讲多个集合对象拼接起来组成一个新集合
      1. 属性:var:指定新集合的名称
      2. 例子:
        <s:append var="newList">
            <s:param value="{....}"/>
            <s:param value="{....}"/>
        </s:append>
    4. generator标签:将指定的字符串按照指定的分隔符分成多个子串
      1. 属性:
        1. val:指定被解析的字符串
        2. separator:指定分隔符
      2. 例子
        <s:generator val="1,2,3,4" separator=",">
            <s:iterator></s:iterator>
        </s:generator>
    5. subset标签:用于取得集合的子集
      1. 属性:
        1. count:指定子集中元素个数
        2. source:指定源集合
        3. start:指定开始截取位置,第一个元素的start=0
      2. 例子
        <s:subset source="{}", start="1", count="4">
        </s:subset>
    6. sort标签:用于对集合元素进行排序
      1. 属性:
        1. comparator:指定排序的Comparator实例
        2. source:指定被排序集合
      2. 例子
        <s:sort source="{}" camparator="#mycomparator"/>
        </s:sort>
  5. 数据标签:
    1. action:在JSP页面中调用Action
    2. bean:创建一个bean实例
    3. date:格式化输出一个日期
    4. debug:用于在页面上生成一个调试链接
    5. i18n:用于指定国际化资源文件的basename
    6. include:在JSP页面中包含其他JSP或者Servlet资源
    7. param:设置一个参数,通常作为bean,url的子标签
    8. push:将某个值放入ValueStack的栈顶
    9. set:用于设置一个新变量,并可以将新变量放入指定的范围
    10. text:用于输出国际化消息
    11. url:用于生产url地址
    12. property:用于输出某个值
原文地址:https://www.cnblogs.com/XD-thinker/p/6731984.html