欢迎来到容一博的博客

扩大
缩小
「一言」· 

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}
View Code

 

 
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>
View Code 

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>
View Code

 

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>
View Code
6.<c:forTokens/>遍历特殊字符串

items:需要遍历的字符串
delims:指定分隔符号
var:每个内容的名称
 1 <%--
 2     6.<c:forTokens/>遍历特殊字符串
 3 --%>
 4 <c:set var="str" value="java-net-php-平面设计" scope="request" />
 5 <%-- JSP脚本形式 --%>
 6 <%
 7       String str = (String)request.getAttribute("str");
 8       String[] strs = str.split("-");
 9       for(int i = 0; i < strs.length; i++){
10           out.write(strs[i]+",");
11       }
12 %>
13 <br>
14 <%--JSTL标签 --%>
15 <%--
16       items:需要遍历的字符串
17       delims:指定分隔符号
18       var:每个内容的名称
19 --%>
20 <c:forTokens items="${str}" delims="-" var="s" varStatus="varStats">
21       ${varStats.count}:${s}<br>
22 </c:forTokens>
View Code

 








posted @ 2018-10-07 01:33  容一博  阅读(530)  评论(0编辑  收藏  举报
Live2D

「一言·」