SpringMVC學習指南【筆記5】EL表達式、實現免腳本JSP頁面、禁用EL計算的設置
EL表達式
關鍵字
and eq gt true instanceof or ne le false empty not lt ge null div mod
訪問對象的屬性的兩種方法:
方法一:${object["propertyName"]}
方法二:${object.propertyName}
但是如果propertyName不是有效的Java變量名,就只能用方法一,不然會導致異常。
EL隱式對象
pageContext initParam paramValues header headerValues cookie applicationScope sessionScope requestScope pageScope
pageContext包含了其它的JSP隱式對象:request response out session application config page exception
initParam用於獲取上下文參數的值
param用於獲取請求參數值
paramValues獲取一個請求參數的多個值,包含了所有請求參數,例如${paramValues.selectedOptions[0]} ${paramValues.selectedOptions[0]}
header表示一個包含所有請求標題的Map,例如為了獲取accept-language這個header的值${header["accept-language"]}
cookie用來獲取一個cookie,例如${cookie.jsessionid.value} ${cookie.jsessionid.path}
算術運算符
+、-、*、/、div、%、mod
邏輯運算符
&&和and、||和or、!和not
關系運算符
==和eq、!=和ne、>和gt、>=和ge、<和lt、<=和le
${empty X}如果X為null,或者X是個長度為0的字符串,那麽表達式就會返回true,否則將返回false。(如果是空Map、空數組或者空集合也會返回true)
實現免腳本的JSP頁面
為了關閉JSP頁面中的腳本元素,要使用jsp-property-group元素以及url-pattern和scripting-invalid兩個子元素。url-pattern元素定義禁用腳本要應用的url樣式。
例如:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config>
註意:在部署描述符中只能有一個isp-config元素。如果已經為禁用EL而定義了一個jsp-property-group,就必須在同一個jsp-config元素下,為禁用腳本而編寫jsp-property-group。
禁用EL計算
禁用之後,一旦出現EL架構,就不會作為一個EL表達式進行計算。
方法一:可以將page指令的isELIgnored屬性設為true。(這個屬性值默認為false)
<%@page isELIgnored="true" %>
方法二:在部署描述符中使用jsp-property-group元素。
例如:在noEL.jsp頁面中禁用EL計算
<jsp-config> <jsp-property-group> <url-pattern>/noEL.jsp</url-pattern> <el-ignored>true</el-ignored> </jsp-property-group> </jsp-config>
如果在方法一中設置的屬性為false,在方法二中設置為禁用了,EL計算也會禁用。
SpringMVC學習指南【筆記5】EL表達式、實現免腳本JSP頁面、禁用EL計算的設置