jstl标签库c:set标签属性scope的注意事项

本文详细介绍了Java JSP中<c:set>标签的使用,包括设置变量、指定作用域(page、request、session、application)以及如何修改和查找域中的值。还展示了如何修改Map集合中的元素,并通过示例展示了域查找和覆盖的顺序。内容涵盖了JSP页面变量管理的基础知识和实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<c:set var="username" value="刘备" scope="page"></c:set>
<pre>${username}</pre>

(1)var – 指定存入域中属性的名称
(2)value -- 指定存入域中属性的值
(3)scope – 往作用域中添加/修改一个属性,默认是最小的域对象(不用加scope属性)
   scope属性用于指定将属性存入哪一个域中,可取值为:
		scope="page":此处page表示pageContext域, 代表当前jsp页面的运行环境的对象,通过该对象可以访问页面中的共享数据
					(写成:scope="pageContext" 报错:HTTP状态 500 - 内部服务器错误)
		scope="request":表示request域,对应servlet中的 HttpServletRequest/ServletRequest
		scope="session":表示session域,对应servlet中的 HttpSession
		scope="application":表示ServletContext域,对应servlet中的 ServletContext
		
		chrome://settings/cookies/detail?site=localhost  chrome清除jsessionid

 尽量避免同时使用scope="application"和scope="session"
scope="application"的值第二次会被scope="session"覆盖!!!

域值的修改:	
<c:set var="username" value="刘备" scope="request"></c:set>
<pre>${username}</pre>
<c:set var="username" value="关羽" scope="request"></c:set>
<pre>${username}</pre>
刘备
关羽
域值的查找和覆盖1:	   
<c:set var="username" value="张飞" scope="session"></c:set>
<pre>${username}</pre>
<c:set var="username" value="关羽" scope="request"></c:set>
<pre>${username}</pre>
<c:set var="username" value="刘备" scope="page"></c:set>
<pre>${username}</pre>
张飞
关羽
刘备
先通过scope="page"找范围最小的域对象,scope="request"找范围稍大点的域对象,再通过scope="session"找范围大的域对象	
域值的查找和覆盖2:	   
<c:set var="username" value="刘备" scope="page"></c:set>
<pre>${username}</pre>
<c:set var="username" value="关羽" scope="request"></c:set>
<pre>${username}</pre>
<c:set var="username" value="张飞" scope="session"></c:set>
<pre>${username}</pre>
刘备
刘备
刘备
先通过scope="page"找范围最小的域对象,scope="request"找范围稍大点的域对象,再通过scope="session"找范围大的域对象
(4)target和property 指定修改作用域中已有的map集合中的元素
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%
	Map<String, String> map2 = new HashMap<String, String>();
	map2.put("name2","刘德华");
	map2.put("age2", "20");
	map2.put("nickname2", "华仔");
	request.setAttribute("map2", map2);
%>
<c:set target="${map2}" property="name2" value="吕德华" ></c:set>
<c:set target="${map2}" property="age2" value="32" ></c:set>
<c:set target="${map2}" property="nickname2" value="吕仙林" ></c:set>
<pre>map集合元素获取:${map2.name2}</pre>
<pre>map集合元素获取:${map2.age2}</pre>
<pre>map集合元素获取:${map2.nickname2}</pre>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值