Java与jstl变量交互。
我们知道jstl和java api(或者说是<%%>方式)是很不相同的两种书写方式,他们之间的变量有些可以很好的传递,例如:
(1)<%%>变量在jstl中获取的例子:
<%
String username="zhangsan";
pageContext.setAttribute("username",username);
%>
<c:out value="${username}"/>
即:jsp 页面中<%%>中的变量在定义后,需要放置到pageContext属性中,才能被获取(当然也可以放置到request和session、 applicatio中,这要根据实际应用来做决定,一般只是在页面中使用的化,使用pageContext就可以了)。
(2)jstl变量在<%%>中获取的例子:
<c:set var="username" value="zhangsan"/>
<%
String username=(String)pageContext.getAttribute("username");
%>
上面为什么要在pageContext中来获取呢,因为c:set方式定义的变量默认是存放在pageContext的属性中的,当然了如果在定义是指定了作用范围,则也需要通过相应作用范围的页面对象来获取该属性,例如:
<c:set var="username" value="zhangsan" scope="session"/>
<%
String username=(String)session.getAttribute("username");
%>
另 外,还要注意一点,jstl中的许多操作都用到了var属性,例如c:forEach、c:import等等,这些var所代表的变量默认也是存放在 pageContext中的,当然有些标签还提供了scope属性,这也意味着其var所代表的变量会存放到scope指定的范围之中。
本文详细介绍了Java与JSTL如何进行变量交互,包括<%%>方式的变量如何在JSTL中获取,以及JSTL变量如何在<%%>中获取。解释了变量存放于pageContext、request、session和application的作用范围,并讨论了c:set等JSTL标签的使用。
1553

被折叠的 条评论
为什么被折叠?



