關於EL表示式中requestScope和param區別,el表示式與jstl標籤
阿新 • • 發佈:2019-01-28
今天演示EL表示式的時候發現自己jsp的基礎實在是薄弱,在這個很簡單的問題上迷惑了很久。
首先在看遇到的問題:
在瀏覽器地址輸入,表示傳入一個引數test,值為123
http://localhost:8888/Test/index.jsp?test=123
在index.jsp中嘗試使用EL表示式取出,程式碼如下:
<body> ${test} </body>
發現毫無結果,再使用requestScope嘗試取出:
<body> ${requestScope.test} </body>
發現還是毫無結果,感到非常詫異,遂乾脆使用java指令碼嘗試取出。
<body> <%request.getAttribute("test"); %> </body>
依然無解。
之後發現,若使用已下程式碼向request作用域賦值,則用上面程式碼可以取出
<% request.setAttribute("test", "123"); %>
查詢資料後發現,使用以下程式碼可以取出之前的請求引數:
EL:
<body> ${param.test} </body>
JAVA指令碼:
<body> <%=request.getParameter("test") %> </body>
結論就是:${param.name} 等價於 request.getParamter("name"),這兩種方法一般用於伺服器從頁面或者客戶端獲取的內容。
${requestScope.name} 等價於 request.getAttribute("name"),一般是從伺服器傳遞結果到頁面,在頁面中取出伺服器儲存的值。