JSTL核心标签库

Posted chromer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSTL核心标签库相关的知识,希望对你有一定的参考价值。

 1     <%-- 保存数据 --%>
 2     <c:set></c:set>
 3 
 4     <%-- 获取数据 --%>
 5     <c:out value=""></c:out>
 6 
 7     <%-- 单条件判断 --%>
 8     <c:if test=""></c:if>
 9 
10     <%-- 多条件判断 --%>
11     <c:choose></c:choose>
12     <c:when test=""></c:when>
13     <c:otherwise></c:otherwise>
14 
15     <%-- 用于迭代(循环) --%>
16     <c:forEach></c:forEach>
17     <c:forTokens items="" delims=""></c:forTokens>
18 
19     <%-- 重定向 --%>
20     <c:redirect></c:redirect>

1.<c:set/>给域对象赋值

JSTL标签
    var:数据的名称
    value:保存的数据值
    scope:保存到哪个域
        page:page域
        request:request域
        session:session域
        application:application域
 1       <%--
 2           <c:set/> 给域对象赋值
 3        --%>
 4        <%-- jsp脚本 --%>
 5        <%
 6            //String name = "eric";
 7            //pageContext.setAttribute("name", name);
 8        %>
 9        <%-- 
10            JSTL标签
11             var:数据的名称
12             value:保存的数据值
13             scope:保存到哪个域
14                 page:page域
15                 request:request域
16                 session:session域
17                 application:application域
18         --%>
19        <c:set var="name" value="jacky" scope="request"/>
20        ${requestScope.name}

2.<c:out/>获取域对象的数据

value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
default:默认值。当前需要获取的内容为null时,那么使用默认值代替
escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。
 1     <%--
 2       2. <c:out/> 获取域对象的数据
 3      --%>
 4     <%-- EL表达式 --%>
 5      ${name }<br>
 6     <%--
 7       value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取
 8        default:默认值。当前需要获取的内容为null时,那么使用默认值代替
 9        escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。
10       --%>
11     <c:out value="${name }"  default="<h3>默认值</h3>" escapeXml="false"></c:out>

3.<c:if/>单条件判断

test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。

1 <%--
2     3.<c:if/>单条件判断
3  --%>
4 <%--
5     test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。
6 --%>
7 <c:if test="${10 > 8}">
8       <input type="submit" value="提交"/>
9 </c:if>

4.<c:choose/>+<c:when/>+<c:otherwise/>多条件判断

 1 <%--
 2     4.<c:choose/>+<c:when/>+<c:otherwise/> 多条件判断
 3  --%>
 4 <%--模拟登录 --%>
 5 <c:set var="user" value="jacky" scope="session"/>
 6 <c:choose>
 7     <c:when test="${!empty sessionScope.user }">
 8        欢迎回来,你的用户名是:${sessionScope.user},<a href="">【退出登录】</a>
 9     </c:when>
10     <c:otherwise>
11         请先<a href="">注册</a>或<a href="">登录</a>
12     </c:otherwise>
13 </c:choose>

5.<c:forEach/>用于迭代或循环

begin:从哪个元素开始遍历,从0开始 可以不写
end:到哪个元素为止  可以不写
step:增加步长。默认为1 可以不写
items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
var:每个元素名称
varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
 1 <%--
 2     5.<c:forEach/>用于迭代或循环
 3 --%>
 4 <%
 5     //List集合
 6     List<Student> list = new ArrayList<Student>();
 7     list.add(new Student("abc","123"));
 8     list.add(new Student("def","123"));
 9     list.add(new Student("ghi","123"));
10     list.add(new Student("jkl","123"));
11     pageContext.setAttribute("list", list);
12 %>
13 EL表达式:<br>${list[0]}<br>${list[1]}<br>${list[2]}<br>${list[3]}<br>
14 <%--
15        begin:从哪个元素开始遍历,从0开始 可以不写
16        end:到哪个元素为止  可以不写
17        step:增加步长。默认为1 可以不写
18        items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取
19        var:每个元素名称
20        varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
21 --%>
22 JSTL标签:<br>
23 <c:forEach items="${list}" var="student" varStatus="varStats">
24         学生${varStats.count} :${student}<br>
25 </c:forEach>
26 <hr/>
27 <%
28         //Map集合
29       Map<String,Student> map = new HashMap<String,Student>();
30       map.put("001", new Student("eric","1234"));
31       map.put("002", new Student("rose","1234"));
32       map.put("003", new Student("jacky","1234"));
33       pageContext.setAttribute("map", map);
34           %>
35 EL表达式:<br>${map[‘001‘]}<br>${map[‘002‘]}<br>${map[‘003‘]}<br>
36 JSTL标签:<br>
37 <%--
38       注意:forEach标签遍历Map集合时,把每个Map的对象使用Entry封装,Entry封装键对象和值对象,
39       通过getKey()获取键对象,通过getValue()获取值对象
40 --%>
41 <c:forEach items="${map}" var="entry" varStatus="varStats">
42       <%--学生${varStats.count}:${student}<br> --%>
43       编号:${entry.key} - 姓名:${entry.value.name} - 密码:${entry.value.password}<br>
44 </c:forEach>

以上是关于JSTL核心标签库的主要内容,如果未能解决你的问题,请参考以下文章

JSTL标签库

JSTL核心标签

JSTL 核心标签库 使用

jstl标签库基础教程及其使用代码

JSP标签语法JSTL标签库EL表达式辨析

使用JSTL步骤+常用的核心标签