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>