變數存取範圍及JSP、JSTL和Struts技術中變數的存取方法

來源:互聯網
上載者:User

標籤:style   color   io   os   使用   ar   sp   on   ef   

JSP中變數的定義範圍實際有5種:本地範圍,頁面範圍(page),請求範圍(request),會話範圍(session)和應用程式範圍(application)。

以下介紹在各種技術中的變數存取方法。

u       JSP中:

儲存:

本地範圍變數直接定義,如:

   String name="name in page";

page範圍變數儲存在pageContext隱式對象中,如:

   pageContext.setAttribute("nameContext","name in pageContext");

request範圍變數儲存在request隱式對象中,如:

   request.setAttribute("nameRequest","name in Request");

session範圍變數儲存在session隱式對象中,如:

   session.setAttribute("nameSession","name in Session");

application範圍變數儲存在application隱式對象中,如:

   application.setAttribute("nameApplication","name in Application");

讀取:

   name:<%=name%><br/>

nameContext:<%=pageContext.getAttribute("nameContext").toString()%><br/>

nameRequest:<%=request.getAttribute("nameRequest").toString() %><br/>

nameSession:<%=session.getAttribute("nameSession").toString() %><br/>

nameApplication:<%=application.getAttribute("nameApplication").toString() %>

u       JSTL中

JSTL中沒有本地範圍的概念。只有page,request,session和application範圍的變數。

儲存

使用c:set儲存變數。

scope屬性預設為page, 若不指定則變數儲存在page範圍裡:

   <c:set var="name" value="name in where"/>

   <c:set var="namePage" value="name in pageScope" scope="page"></c:set>

   <c:set var="nameRequest" value="name in requestScope" scope="request"></c:set>

   <c:set var="nameSession" value="name in sessionScope" scope="session"></c:set>

   <c:set var="nameApplication" value="name in ApplicationScope" scope="page"></c:set>

讀取

使用c:out讀取變數

c:out標籤依次從page,request,session,application範圍尋找指定變數然後輸出。也可以指定尋找範圍。

   nameSession - <c:out value="${nameSession}"/> - 依次搜尋至session範圍,找到nameSession變數,然後輸出。<br/>

   namePage - <c:out value="${pageScope.namePage }"/> - 指定搜尋範圍為page範圍<br>

   nameRequest - <c:out value="${requestScope.nameRequest }"/> - 指定搜尋範圍為request範圍<br>

   nameSession - <c:out value="${sessionScope.nameSession }"/> - 指定搜尋範圍為session範圍<br>

   nameApplication - <c:out value="${applicationScope.nameApplication }"/> - 指定搜尋範圍為application範圍<br>

   name - <c:out value="${pageScope.name }"/>

struts中
跟JSTL一樣,只有page,request,session,application範圍。
儲存
使用bean:define
toScope屬性指定儲存範圍,預設為page, 若不指定則變數儲存在page範圍裡
讀取
使用bean:write
scope屬性指定讀取範圍,若沒有設定此屬性,則依次從page,request,session,application範圍尋找指定變數然後輸出。


變數存取範圍及JSP、JSTL和Struts技術中變數的存取方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.