天天看点

JSP基础----JSP标准标签库(JSTL)

一、什么是JSTL?

JSTL的jar包资源:链接:https://pan.baidu.com/s/1ZsY7lAHWQSA0DiZVlieVhA 密码:cnwg

JSTL:全称JavaServerPages Standard TagLibrary,  JSP标准标签库

二、JSTL的作用

实现JSP页面中逻辑处理。如判断, 循环等;

三、如何使用JSTL

  必须在JSP页面添加tablib指令库

<% @taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c">

 四、标签介绍

1、通用标签set,out,remove

基础标签:声明变量,输出变量,移除变量,变量默认值

<!--1. var:是变量名  value:变量的值(必须是EL表达式)-->

    <p:set var="k" value="${1+1}"></p:set>

<!--2. 输出变量k   value:使用EL表示表示变量-->

    移除前输出的内容:<p:out value="${k}"></p:out><br>

    移除指定变量    <p:remove var="k"/>

    移除后输出的内容:<p:out value="${k}"></p:out><br>

 给指定变量赋默认值 :<p:out value="${m}" default="123456"> </p:out>

2、条件标签if,choose

<c:if>

<!-- 条件标签:if  choose -->
    <!-- test属性中是条件,但是条件需要使用EL表达式来书写 -->
    <h3>条件标签:if</h3>
    <c:if test="${8>2 }">
    8大于2是成立的
     </c:if>
    <c:if test="${8<2 }">
    8小于2是成立的
    </c:if>
    <br>
    <%--  如果只是一个基本数据类型直接书写不需要${} --%>
    <c:set var="m" value="${5}"></c:set>
    <c:if test="${m>3}">
     5大于3是成立的
  </c:if>      

<c:choose>

<h3>条件标签:choose(等价于java中switch)</h3>
<%-- 测试成绩等级 >90 优秀   >80  良好    >70 中等   >60及格--%>
<c:set var="score" value="${80}"></c:set>
<c:choose>
    <c:when test="${score>=90 }">优秀</c:when>
    <c:when test="${score>=80 }">良好</c:when>
    <c:when test="${score>=70 }">中等</c:when>
    <c:when test="${score>=60 }">及格</c:when>
    <c:otherwise>不及格</c:otherwise>
</c:choose>      

3  、迭代标签foreach

for基础遍历

<!-- 遍历for:输出1到10 的值 -->
    <!--var: 变量,把遍历的每一个值都存储在变量中进行输出
    begin:开始   如果是变量使用EL表达式表示
    end:结束    如果是变量使用EL表达式表示
    step:间隔的长度
    
    for( int i=0;i<10;i++){
     System.out.println(i);
    }
     -->
示例代码:
<c:forEach var="i" begin="1" end="10" step="2">
 ${i}<br>
</c:forEach>      

foreach遍历

<h3>测试list集合遍历获取学生列表</h3>
      <table  width="80%" bordercolor="red" cellspacing="0"
          align="center">
          <tr>
              <th>学号</th>
              <th>姓名</th>
              <th>成绩</th>
              <th>班级</th>
              <th>是否是第一个</th>
              <th>是否是最后一个</th>
              <th>计数count</th>
              <th>索引index</th>
          </tr>
   <!-- varStatus:变量状态:遍历出的每一项内容的状态:
      isFirst()      first
      isLast()       last
      getCount()     count  计数  重要的 从1开始
      getIndex()     index  从0开始
       -->
       <!-- var :遍历出的每一项使用变量先存储
            items:集合(使用El表达式)
            -->
          <c:forEach var="stu" items="${students}" varStatus="vs">
              <tr>
                  <td>${stu.id}</td>
                  <td>${stu.name}</td>
                  <td>${stu.score}</td>
                  <td>${stu.classes}</td>
                  <td>${vs.first}</td>
                  <td>${vs.last}</td>
                  <td>${vs.count}</td>
                  <td>${vs.index}</td>
              </tr>
          </c:forEach>
   </table>