簡體   English   中英

pageContext.findAttribute()函數還能找到請求范圍嗎?

[英]does pageContext.findAttribute() function finds request scope also?

我的jsp文件中包含以下代碼段:

<%
String name = request.getParameter("name");     
out.println(pageContext.findAttribute("name"));

%>

<br><br>

Name in request scope: <%=name %><br>

對於傳遞的參數名稱= Swatanya,我得到的輸出如下:

null 

Name in request scope: swatanya

當請求范圍的name參數中有值時,為什么findAttribute返回null?

請求參數和屬性之間有區別。 不要混淆兩者。

如果您在談論查詢字符串,那么它作為請求參數而不是屬性傳遞。


JspContext#findAttribute()聲明什么:

在頁面,請求,會話(如果有效)和應用程序范圍內按順序搜索命名屬性 ,並返回關聯值或null

ServletRequest#getParameter()指出:

以字符串形式返回請求參數的值,如果參數不存在,則返回null。 請求參數是與請求一起發送的額外信息 對於HTTP Servlet,參數包含在查詢字符串或發布的表單數據中。


如果需要,您可以按照這種方式嘗試:

request.setAttribute("name", request.getParameter("name"));

注意:

我建議您使用JavaServer Pages標准標記庫表達式語言來代替Scriplet ,因為它更易於使用且出錯率更低

在第一種情況下,您正在請求范圍內的特定范圍內搜索。 在第二種情況下,您按順序在頁面,請求,會話和應用程序范圍中進行搜索。這意味着如果在獲取參數的情況下,如果請求范圍中不存在名稱,則它將返回null,而在find屬性中它將搜索所有范圍

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM