给OGNL“加把火”

      OGNL的全称是 Objece Graphic Navigation Language,也就是数据导航图语言, 工作在视图层,可简化数据的访问操作,取代页面中的Java脚本。用如下图片可直观看出其架构;
     出现的原因:我们都知道基于B/S模式的应用程序要完成数据的交互,必须要进行数类型的转换,否则将出现B/S两端类型不兼容问题,从而无法完成数据之间的交互,它的 转换基础是OGNL。
     OGNL将页面中的元素与对象的属性绑定起来,把页面提交过来字符串自动转换成对应的Java基本类型并放入到“值栈”中,而用户可以通过OGNL表达式或者Struts 2标签从“值栈”获得这些属性的值,其从“值栈”获得的过程也是一次类型转换的过程,即 Java类型转换从String类型
     OGNL “表达式”的几点注意事项:
     1.“#”访问非根对象的属性,例如#session.msg表达式中,#表示ActionContext.getContext();
     2.“$"有两种用途,在国际化资源中,引用OGNL表达式,例如:reg.agerange=国际化资源信息;年龄必须在${min}和${max}之间;在Struts 2配置文件中,引用OGNL表达式。
     3.“%”在标签的属性值被理解为字符串类型时,告诉 执行环境%{}里的是OGNL表达式。%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。简而言之,当有的标签“看不懂”里面的执行语句时,就要用 %{}翻译一下“翻译一下”
     小小总结,Strut 2是很好的MVC框架的实现者,它对视图层和非视图层提供了强大的类型转换和数据转移机制,使开发者能运用自如。

猜你喜欢

转载自861586198.iteye.com/blog/2224233