EL表达式和OGNL表达式 区别小结

1:  EL表达式

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

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

特点:

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

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

:${#name},里面的是不带#号的

如果放在对象栈中的是一个自定义的对象,那么${property}里面可以直接去该对象的属性值

 

OGNL表达式::

读取从后台传递的值

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

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

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

另外我喜欢EL表达式和JSTL(JSP标准标签库)结合使用,即c:if,c:foreach等标签库

你可能感兴趣的:(EL,Ognl)