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框架的实现者,它对视图层和非视图层提供了强大的类型转换和数据转移机制,使开发者能运用自如。
给OGNL“加把火”
猜你喜欢
转载自861586198.iteye.com/blog/2224233
今日推荐
周排行