1. 程式人生 > >SpringMVC學習指南【筆記5】EL表達式、實現免腳本JSP頁面、禁用EL計算的設置

SpringMVC學習指南【筆記5】EL表達式、實現免腳本JSP頁面、禁用EL計算的設置

ava session 關系運算 except conf cookie lec class 運算

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計算的設置