EL与OGNL区别

EL表达式:

>>单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.

>>如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值.

>>特点1:${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取。

>>特点2:在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有name这个全局变量。

>>特点3:${name},里面的是不带#号的。
>
>>特点4:如果放在对象栈中的是一个自定义的对象,那么${property}里面可以直接去该对象的属性值,不用这样${object.property}

OGNL表达式:

1:读取从后台传递的值

%{#name}:表示从值栈的map中取值

%{name}:表示从值栈的对象栈中取值

%{#request.name}:表示从request域中取值

2:自己构建数据

a,构建Map<s:iterator var="map" value="#{'key1':'value1','key2':'value2'}"/>

b,构建List<s:iterator var="list" value="{'one','two','three'}">

用法区别:
OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使用 ${sessionScope.username}

转载:OGNL表达式与EL表达式

展开阅读全文

没有更多推荐了,返回首页