之前上课老师说过,在Struts2的标签里面,EL表达式和OGNL表达式是等价的,因为经过Struts2部署后,request会被包装成StrutsRequestWrapper,它是先从request中取值,然后再从值栈中检索。
但是最近看了一篇文章说Struts2已经不支持EL表达式了,也就是说这样会报错:
<s:url id="select" value="${pageContext.request.contextPath}">
那么就是说现在EL表达式和OGNL表达式是完全分离的了,OGNL要依赖Struts2标签,而EL又不能进驻Struts2标签,是这样吗?
Struts2 EL表达式 OGNL表达式 标签
------解决方案--------------------
这个还没听说,我struts2用el用得好好的啊... ...
------解决方案--------------------
<s:url id="select" value="${pageContext.request.contextPath}">,Struts2标签里面不可以嵌套EL表达式。
虽然Struts2标签里面不可以嵌套EL表达式,但是你在JSP页面里面还可以使用EL表达式。如:<span>${pageContext.request.contextPath}</span>。<span>标签是HTML标签,可以使用EL表达式取值。
需要注意的是:
页面启用EL表达式:<%@ page isELIgnored="false" %> ,如果web.xml里用web-app_2_4.xsd声明的话,在JSP页面就不用再显式声明,默认是可以识别EL表达式的。工程的web.xml声明部分一般有如下版本的xsd, web-app_2_2.xsd ,web-app_2_3.xsd
,web-app_2_4.xsd ,web-app_2_5.xsd 。我博客有详细说明,有什么问题可以再接着探讨,。
------解决方案--------------------
是的,Struts2标签里面已经不能嵌套使用EL表达式。其实,你没必要纠结于到底以前能不能使用,最重要的掌握Struts2的标签。我觉得你最好写个页面,自己运行一下,这样子对你的理解比较深刻。
------解决方案--------------------
是的,Struts2标签里面已经不能嵌套使用EL表达式。其实,你没必要纠结于到底以前能不能使用,最重要的掌握Struts2的标签。我觉得你最好写个页面,自己运行一下,这样子对你的理解比较深刻。