struts2简单入门-OGNL表达式

  1. 什么是OGNL表达式
    1. Object-Graph Navigation Language的缩写。
    2. 可以遍历整个对象结构图,实现对象类型转换等功能的表达式。
    3. OGNL实际上是个Map集合,有一个上下文根对象。
    4. ActionContext作为OGNL上下文,并把ValueStack作为根对象。
  2. ValueStack
    1. 可以执行,增加,删除,查询。
    2. struts2会把Action放到栈顶。
  3. OGNL中的几个家伙
    1. #
      1. 访问非根对象属性
      2. #session.msg
        相当于 ActionContext.getContext().getSession().getAttribute("msg");
    2. %
      1. 字符串类型时,计算OGNL表达式
    3. $
      1. 在国际化资源文件中,引用OGNL表达式
      2. 在Struts 2框架的配置文件中引用OGNL表达式
    4. @
      1. 访问静态方法
    5. 常用标签
      1. 流程控制标签
      2.  1 <s:if test="{}"></s:if>//if表达式
         2 <s:if test="{}"></s:if><s:else></s:else>//if else 表达式
         3 <s:ifelse test="{}"></s:ifelse>//Ifelse 表达式
         4 //test 字符串 要加%{}
         5 
         6 判断集合元素的符号 in,not in
         7 //in 判断集合是否在当前集合内,not in 判断集合是否不在当前集合内.
         8 
         9 OGNL过滤表达式
        10 ?://获取所有符合的元素
        11 ^://获取第一个符合的元素
        12 $://获取最后一个符合的元素
        13 
        14 <s:iterator value=""></s:iterator>
        15 //对一个集合进行迭代
        16 //id 集合内元素的ID
        17 //status 指定迭代对象名称
        18 <s:iterator value="books.{?#this.price > 35}"> 
        19 //?#this.price > 35 this 指取当前集合内的属性值符合条件的元素。
        20       <s:property value="title" /> - $<s:property value="price" />
        21 </s:iterator>

         

      3. 通用标签
      4.  1 <s:property value="">
         2 //default 获取属性值.
         3 //scope 指定命名空间.
         4 //value 属性名
         5 //id 元素标识
         6 
         7 <s:set scope="" name="" value="">
         8 //设置属性值 value 如果是字符串需要加'',否则会当成变量.
         9 //scope 可以是application、session、request、 page或action.
        10 
        11 <s:action id="" name="" namespace="" executeResult="false|true" ignoreContextParams="false|true"/> 
        12 //action 引用名称 namespace 命名空间 executeResult 是否返回视图 ignoreContextParams 是否传递参数
        13 
        14 <s:bean id="" name="">
        15 // id 引用名称 带id 标签结束不会移除对象 name 实现类全路径 
        16 <s:param name="" value=""/>
        17 //name 参数名称 value 参数值
        18 </s:bean> 
        19 
        20 <s:date format="" nice="" name="" id=""/>
        21 //format 日期输出格式 nice 输出时间差 name 时间值 id 引用名称

         

      5. 调试标签
      6.  1 <s:debug/>
         2 //输出所有的信息valuestack context
         3 
         4 <s:fielderror/>
         5 //控制端 调用addFieldErrors(,)
         6 
         7 <s:actionerror/>
         8 //获取Action错误消息 需要在控制端调用addActionError 方法
         9 
        10 <s:actionmessage/>
        11 //获取Action消息 需要在控制端调用addActionMessage方法

         

      7. 表单标签

 

posted @ 2017-08-03 17:25  你真的好美  阅读(296)  评论(0编辑  收藏  举报