jstl之基本,遍历,条件标签

1 . 遍历标签

package com.sky.servlet;

import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sky.domain.Student;


public class QueryAllStudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
       //实际情况:数据库查询数据

        //模拟一个学生集合
        List<Student>  list =new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            Student student =new Student();
            student.setId(UUID.randomUUID().toString());
            student.setName("name=="+i);
            student.setScore(70+i);
            student.setClasses(String.valueOf(1707+i));
            list.add(student);
        }
        //数据交给jsp页面展示  在jsp页面不需要获取,直接通EL表达式就可以获取到  ${student}
        request.getSession().setAttribute("students", list);
        String path="遍历标签.jsp";
        //URLEncoder.encode(“”,“UTF-8”)不只是按UTF-8编码生成一个字符串,还将其中的不安全字符做了转码处理。
        response.sendRedirect(URLEncoder.encode(path,"utf-8"));

    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
    <%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!-- 遍历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>
    <h3>测试list集合遍历(list存储的是基本数据类型)</h3>
    <%
        List<String> list = new ArrayList<String>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        pageContext.setAttribute("list", list);
    %>
    <!-- 
java: for(String item:list){
     System.out.println(item);
  }
 -->
    <table border="1" width="80%" bordercolor="red" cellspacing=""
        align="center">
        <c:forEach var="item" items="${list}">
            <tr>
                <td align="center">${item}</td>
            </tr>
        </c:forEach>
    </table>
    <h3>测试list集合遍历获取学生列表</h3>
    <table border="1" 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  计数  重要的
    getIndex()     index
     -->
        <c:forEach var="stu" items="${students}" varStatus="vs">
            <tr>
            <!-- 单独运行这个jsp页面的话不会展示数据,因为数据就没有传过来 -->
                <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>

</body>

</html>

2 . 基本标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="p" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 基础标签:声明变量,输出变量,移除变量,变量默认值 -->
<h3>基础标签:声明变量,输出变量,移除变量,变量默认值</h3>
<!--1. var:是变量名  value:变量的值(必须是EL表达式)-->
<p:set var="k" value="${1+1}"></p:set>
<!--2. 输出变量k   value:使用EL表示表示变量-->
移除前输出的内容:<p:out value="${k}"></p:out><br>
<!--3.移除指定变量  -->
<p:remove var="k"/>
移除后输出的内容:<p:out value="${k}"></p:out><br>
<!--4.给指定变量赋默认值  -->
默认值:<p:out value="${m}" default="123456"></p:out>
</body>
</html>

3 . 条件标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!-- 条件标签: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>
    <%--  value如果只是一个基本数据类型直接书写不需要${},如果不是一个基本数据类型,必须写上${} --%>
    <c:set var="m" value="${5}"></c:set>
    <c:if test="${m>3}">
     5大于3是成立的
  </c:if>
    <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>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值