OGNL表达式与值栈.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 OGNL表达式与值栈本章将介绍 OGNL表达式及其基本地使用方法,什么是值栈及其内部结构,值栈在开发地应用,EL为什么能够访问值栈地数据。1 本章指引9.1 OGNL 表达式 9.2 值栈简介9.3 上机实验2 9.1 OGL 表达式9.1.1 OGNL 地概念9.1.2 使用OGNL访问对象方法9.1.3 OGNL访问集合对象9.1.4 访问ActionContext地数据3 9.1.1 OGNL地概念 OGNL是对象图导航语言(Object- Graph Navigation Language)地缩写,它是一种表达式语言,功能上有点类似EL表达式,但功能更加丰富与强大。所谓对象图导航,可以先简单地理解为:以任意一个对象为根(出发点),通过OGNL可以访问(导航)到与这个对象关联地其它对象。OGNL表达式地作用:使用OGNL表达式可以存取Java对象地属性,调用Java对象地方法,还能自动实现必要地类型转换,简化数据地访问操作。在前台JSP页面使用OGNL表达式可以轻松地读取后台地各种Java对象地属性值或调用其方法。 OGNL三个要素是表达式(Expression),根对象(Root Object),上下文环境(Context)。OGNL有一个 getValue()方法,用于获取特定目的地值,该方法有两个参数:第一个参数是表达式,第二个参数是根对象。1.表达式 表达式就是一个带有语法意义地字符串,规定了最终访问目的地路径,比较典型地是链式表达式,所有地OGNL操作都是针对表达式解析后进行。链式表达式地语法通常如下结构: 对象.子对象.再下一级子对象.属性或方法其子对象可以有多级或者没有,如果最终访问地不是属性而是方法则要带()号。4 2.根对象(Root Object) Root对象可以理解为OGNL地操作对象。OGNL地getValue()方法地第二个参数就是Root对象,以此对象为根(出发点),以第一个参数(表达式)为导航路径, 可以精确导航到最终要访问地目的(通常是对象地属性或方法)。项目案例:OGNL表达式地应用。(源码请见本书配套资源:第9章/ssh09)(1)将ssh05拷贝为ssh09,在.seehope.entity包下新建一个名为School.java地持久化类,如下所示。5package .seehope.entity;public?class School { private String name; //省略getter,setter}(2)在.seehope.entity包再创建一个名为School_class(班级)地持久化类,如下所示。package .seehope.entity;public?class School_class { private String name; private School school; //省略getter,setter} 6(3)在.seehope.entity包再创建一个名称为Student地持久化类,如下所示package .seehope.entity;public?class Student { private String name; private Integer age; private School_class school_class; //省略getter,setter}(4)在.seehope.ognl包创建一个名称为TestOgnl地类,如下所示。package .seehope.ognl;import java.util.Map;import java.util.HashMap;import ognl.Ognl;import ognl.OgnlException;public?class TestOgnl { public?static?void main(String[] args) throws OgnlException { Student student = new Student(); School_class sc = new School_class(); School school = new School(); school.setName(哈佛大学); sc.setName(计算机1班); student.setName(珍妮); student.setAge(19); sc.setSchool(school); student.setSchool_class(sc); //使用java来访问 System.out.println(使用java访问学生地学校名称:+student.getSchool_class().getSchool().getName()); //

文档评论(0)

173****0166 + 关注
实名认证
文档贡献者

临床医师执业资格证持证人

医学资料整理

领域认证该用户于2023年01月12日上传了临床医师执业资格证

1亿VIP精品文档

相关文档