![](/img/trans.png)
[英]JSP: Test if a variable from pageContext.findAttribute(“”) exists
[英]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.