>与EL表达式

时间:2022-08-04 19:04:11

struts2.0以上版本,标签不支持EL表达式,要使用OGNL表达式:


<s:if test="${M}==0">显示1</s:if>
<s:else>显示2</s:else>

以上做法会报错,是错误的。
应该使用OGNL表达式:
如果访问其他Context中的对象,由于他们不是根对象,所以在访问时,需要添加#前缀。

l application对象:用于访问ServletContext,例如#application.userName或者#application[‘userName’],相当于调用ServletContext的getAttribute(“username”)。

l session对象:用来访问HttpSession,例如#session.userName或者#session[‘userName’],相当于调用session.getAttribute(“userName”)。

l request对象:用来访问HttpServletRequest属性(attribute)的Map,例如#request.userName或者#request[‘userName’],相当于调用request.getAttribute(“userName”)。

l parameters对象:用于访问HTTP的请求参数,例如#parameters.userName或者#parameters[‘userName’],相当于调用request.getParameter(“username”)。
修正为:

<s:if test="#request.M==0">显示1</s:if>
<s:else>显示2</s:else>