您的位置:首页 > 编程语言 > Java开发

Java与JSTL变量交互

2016-07-10 11:24 288 查看
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指定的范围之中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: