EL表達式中,param和requestScope的區別


在看param和requestScope之前,不妨先了解下在java下request的情況:

1. request對象通常用來接收客戶端提交到服務端的數據,如:在servlet或者action中可以用request.getParameter()的方法獲取獲取參數內容;

2. requestScope通常是在servlet或者action的服務端中通過request.setAttribute()方法把數據放到request對象中供客戶端獲取,然后客戶端獲取的方法就是requestScope.getAttribute()。

1. getParameter

可以獲取URL中傳遞過來的String參數,如:http://www.baidu.com?username=abc 中的abc;

提示:對於POST/GET提交的表單,在服務器端我們都可以通過request.getParameter獲取表單中的值。

當我們在進行一個請求重定向(redirect)的時候,我們可以通過request.setParameter傳遞參數,如果用request.setAttribute在重定向頁面是取不到值的。

(待驗證,因為HttpServletRequest中沒有setParameter方法。)

2. getAttribute:

獲取的是一個對象(Object)。

當我們進行一個請求轉發(forward)的時候,可以使用request.setAttribute傳遞參數。

3. requestScope作為El表達式中的使用:

是EL表達式中的一個隱含對象,類似request,如:${requestScope.username} 表示在request域中取得username屬性所對應的值,相當於request.getAttribute(“username”)。

4. param,El表達式中的使用

${param.username} 可理解為:request.getParameter(“username”);

結論:

${param.name} 等價於 request.getParamter("name"),這兩種方法一般用於服務器從頁面或者客戶端獲取的內容,這些內容都是String的。

${requestScope.name} 等價於 request.getAttribute("name"),一般是從服務器傳遞結果到頁面,在頁面中取出服務器端保存的值!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM