读书人

变量存取范畴及JSP、JSTL和Struts技术

发布时间: 2012-10-30 16:13:35 作者: rapoo

变量存取范围及JSP、JSTL和Struts技术中变量的存取方法

http://blog.csdn.net/yiyi735/article/details/2500567

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范围查找指定变量然后输出。

读书人网 >JavaScript

热点推荐