• 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:用于输出某个值
  • 相关阅读:
    求解大于或等于某个4字节正整数的最小2次幂
    C++17 std::optional
    C++主动调用析构函数
    std::raise()
    C++ std::integral_constant
    C++ range-v3库的安装与测试[Utunbu 18.04]
    python将YUV420P文件转PNG图片格式
    python将两张图片横向或者纵向合成一张
    folly库之Benchmark.h
    Facebook的folly库在Utunbu上的编译
  • 原文地址:https://www.cnblogs.com/XD-thinker/p/6731984.html
Copyright © 2020-2023  润新知