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>