JSTL

  JSTL为了弥补html标签的不足,JSTL自定义了许多标签,标签功能和java代码一样

    使用JSTL核心库必须引用  

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

    在porm.xml需要导入

    <dependencies>
        <!--    servlet依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!--    jsp依赖-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
        <!--    jslt表达式依赖-->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/taglibs/standard -->
        <!--    standard标签库-->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

    </dependencies>

     用JSTL判断输入是否为admin

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<form action="JSTLDemo01.jsp" method="get">
    <p>
        <span>账号:</span>
        <input type="text" name="username" placeholder="请输入账号">
    </p>
    <input type="submit" value="登录"></input>

</form>
<c:if test="${param.username=='admin'}" var="isAdmin">
    <c:out value="Admin"/>
</c:if>

<c:out value="${isAdmin}"/>

</body>
</html>

    其中JSTL代码块可以转换为

<%
    if (request.getParameter("username") == null||!request.getParameter("username").equals("admin")) {
        out.print("false");
    } else if (request.getParameter("username").equals("admin")) {
        out.print("LoginSuccess");
    }
%>

    

    用JSTL判断成绩,类似switch

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="JSTLDemo02.jsp" method="get">
    <p>
        <span>成绩:</span>
        <input type="text" name="scoreText" placeholder="请输入成绩">
    </p>
   <p>
       <input type="submit" value="提交">
   </p>
</form>
<c:set var="score" value="${param.scoreText}"/>
<c:choose>
    <c:when test="${score>=85}">
        <c:out value="成绩为优秀"/>
    </c:when>
    <c:when test="${score>=60}">
        <c:out value="成绩为及格"/>
    </c:when>
    <c:when test="${score<60}">
        <c:out value="成绩为不及格"/>
    </c:when>
</c:choose>
</body>
</html>

    

 

 

    用JSTL for循环,其中begin开始,默认为0   

              end未结束

              step为步长

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.ArrayList" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    ArrayList people = new ArrayList();
    people.add("张三");
    people.add("李四");
    people.add("王五");
    people.add("陈六");
    request.setAttribute("list", people);
%>
<c:forEach var="people" items="${list}" begin="0" end="3" step="1">
    <c:out value="${people}"/>
</c:forEach>
</body>
</html>