本節書摘來自異步社群《精通spring mvc 4》一書中的第2章,第2.6節,作者:【美】geoffroy warin著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
當使用“${}”文法時,我們實際上使用的是spring表達式語言(spring expression language,spel)。關于el,有多個不同的變種,而spel是其中威力強大的一種。
表2-2是它主要特性的概覽。

spel的用處并不僅限于視圖之中,可以将它用在spring架構的各種地方,例如,在通過@value注解往bean中注入屬性時,也可以使用spel。
從請求參數中擷取資料
我們已經能夠在視圖中展現來自服務端的資料,但是,如果想擷取使用者的輸入該怎麼辦呢?根據http協定,有很多方式可以實作這一點,其中最簡單的就是傳遞查詢參數到url之中。
你肯定早就知道什麼是查詢參數了吧,它們會位于url的“?”字元後面,是由名稱和值所組成的清單,每一項會使用“&”符号進行分割,例如:page?var1= value1&var2=value2。
可以使用這項技術要求使用者提供他們的名字,再次修改hellocontroller類,如下所示:
如果此時導航至localhost:8080/?name=geoffroy,将會看到如圖2-5所示的結果。
圖2-5
預設情況下,請求參數是強制要求存在的。這意味着,如果導航至localhost:8080,那麼将會看到一個錯誤頁面。
查閱一下@requestparam的代碼,可以看到除了value屬性以外,它還有其他兩個可用的屬性:required和defaultvalue。
是以,可以修改一下代碼,為其指定一個預設值或者将其設定為非必填項:
在java 8中,我們可以不指定value參數。如果這樣的話,将會使用帶有注解的方法參數名稱。