对于EL表达式和ONGL表达式区别的相关理解
java程序跑起来之后,会有一个内存空间分配出来,存入用到的值,这个值的周围就是上下文空间,而九大内置对象等,都在这个值的周围放着,像这样:
el 就只能获取value stack 周围 的数据,value stack里面的就是你后台代码存入的对象,包括对象的全部属性等等
比如:将数据存入requst中requst.setAttebuilt(user),在页面一般可用EL表达式${user.userName}来获取,或者也可用struts2的OGNL表达式来取:<s: property value="#requst.user.userName">获取,但如果我们不存在request中,只要在后台注入了数据(就是用给它给了set方法)我们可以直接用OGNL表达式来获取,
如:<s:property value="user.userName"/>
注:值栈(value stack)里面的用OGNL表达式来取得时候不用# 如:<s:property value="user.userName"/>,其他对象里面的数据是要用#,如:<s: property value="#requst.user.userName">
以上仅代表个人理解