依赖:
<!-- jstl表达式的依赖 --> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <!-- standard标签库 --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
EL表达式:${}
JSP标签
<%--jsp:include--%> <%--http://localhost:8080/jsptag.jsp?name=gongyi&age=22--%> <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" value="gognyi"/> <jsp:param name="age" value="22"/> </jsp:forward>
JSTL表达式(参考教程)
JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义许多标签,可以供我们使用,标签的功能和Java代码一样
格式化标签
SQL标签
XML标签
核心标签(掌握部分)
JSTL标签库使用步骤:
jsptag.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>1</h1> <%--jsp:include--%> <%--http://localhost:8080/jsptag.jsp?name=gongyi&age=22--%> <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" value="gognyi"/> <jsp:param name="age" value="22"/> </jsp:forward> </body> </html>
jsptag2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>2</h1> <%--取出参数--%> 名字:<%=request.getParameter("name")%> 年龄:<%=request.getParameter("age")%> </body> </html>
coreif.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--引入JSTL核心标签库,我们才能使用JSTL标签,core--%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <body> <h4>测试</h4> <hr> <form action="coreif.jsp" method="get"> <%-- EL表达式获取表单中的数据 ${param.参数名} --%> <input type="text" name="username" value="${param.username}"> <input type="submit" value="登录"> </form> <%--判断如果提交的用户名是管理员,则登录成功--%> <c:if test="${param.username=='admin'}" var="isAdmin"> <c:out value="管理员欢迎您!" /> </c:if> <%--自闭合标签--%> <c:out value="${isAdmin}"/> </body> </html>
corewhen.jsp
<%@ 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> <%--定义一个变量score,值为66--%> <c:set var="score" value="66" /> <c:choose> <c:when test="${score >= 90}"> 你的成绩为优秀 </c:when> </c:choose> <c:choose> <c:when test="${score >= 80}"> 你的成绩为一般 </c:when> </c:choose> <c:choose> <c:when test="${score >= 70}"> 你的成绩为良好 </c:when> </c:choose> <c:choose> <c:when test="${score <= 60}"> 你的成绩为不及格 </c:when> </c:choose> </body> </html>
coreforeach.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% ArrayList<String> people = new ArrayList<String>(); people.add(0, "张三"); people.add(1, "李四"); people.add(2, "王五"); people.add(3, "赵六"); people.add(4, "田七"); request.setAttribute("list", people); %> <%-- var,每一次遍历出来的变量 items,要遍历的对象 begin,哪里开始 end,到哪里 step,步长 --%> <c:forEach var="people" items="${list}"> <c:out value="${people}"/><br> </c:forEach> <hr> <c:forEach var="people" items="${list}" begin="1" end="3" step="1"> <c:out value="${people}"/><br> </c:forEach> </body> </html>
1.访问:http://localhost:8080/javaweb_jsp_war_exploded/coreif.jsp 报错【核心原因:jstl1.2与别的版本不同】
解决:
将项目中的jstl和taglib jar包拷贝到tomcat的lib目录下,重新部署即可
2.jstl头文件不用手工写,在idea如果要用c:out,回车就会自动导入相应的头文件