Struts2 框架(三)

1、OGNL概述

  • 什么是OGNL?
  • 为什么学习OGNL?访问OGNL 上下文(OGNL context)和ActionContext;等。
  • OGNL 在Java 环境下的入门(了解)
    Struts2 框架(三)_第1张图片
    Struts2 框架(三)_第2张图片
    Struts2 框架(三)_第3张图片
    Struts2 框架(三)_第4张图片
  • OGNL 在Struts2 环境下的入门
    Struts2 框架(三)_第5张图片
    Struts2 框架(三)_第6张图片

2、值栈的概述

  • 什么是值栈
    Struts2 框架(三)_第7张图片
    注意:存入值栈中的数据不仅可以从jsp 页面上获取,action 和配置文件中均可以通过OGNL 表达式获得!
  • 值栈的内部结构
    Struts2 框架(三)_第8张图片
    Struts2 框架(三)_第9张图片
  • 值栈与ActionContext 的关系
  • 获得值栈
    Struts2 框架(三)_第10张图片
  • 操作值栈–>向值栈中存入数据

    Struts2 框架(三)_第11张图片
    Struts2 框架(三)_第12张图片
    Struts2 框架(三)_第13张图片
  • 获取值栈数据,就是在页面中使用OGNL 表达式即可。获取root 的数据:不需要加#
    Struts2 框架(三)_第14张图片
    Struts2 框架(三)_第15张图片
    获取context 中的数据(不常用)

    Struts2 框架(三)_第16张图片
  • EL为何访问值栈数据,因为struts2 的框架底层对request.getAttribute(String name) 方法进行了加强,如下:
    Struts2 框架(三)_第17张图片

3、OGNL中的特殊字符

  • #号,两个用途:一是获取context 的数据;二是使用# 号构建map 集合。
    Struts2 框架(三)_第18张图片
    Struts2 框架(三)_第19张图片
  • %号,强制解析OGNL
    Struts2 框架(三)_第20张图片
  • $号,用途:在配置文件中使用OGNL
    Struts2 框架(三)_第21张图片

4、综合案例:优化查询

将查询到的数据存入值栈中
Struts2 框架(三)_第22张图片
在页面中使用OGNL 表达式获取
Struts2 框架(三)_第23张图片
Struts2 框架(三)_第24张图片
注意:如果定义var,则需要加# 号。

结束!!!

你可能感兴趣的:(Java,Web,Learning)