1. 程式人生 > >【JSP】關於EL表示式中requestScope和param區別

【JSP】關於EL表示式中requestScope和param區別

今天演示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"),一般是從伺服器傳遞結果到頁面,在頁面中取出伺服器儲存的值。


原文地址:

關於EL表示式中requestScope和param區別 - coolhwm - 部落格園  http://www.cnblogs.com/coolhwm/archive/2011/11/26/2264598.html

參考:

EL表示式獲取url中的引數 - 沒傘的孩子就得跑的專欄 - CSDN部落格 https://blog.csdn.net/zoujian1993/article/details/75087553