JSP、JSTL标签,EL表达式

230 阅读1分钟

JSTL是为了弥补html的不足,标签的功能和java代码的效果一样

项目报错

(java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConditionalTagSupport)

  • tomcat的lib目录少jar包(需要手动导入)
  • 就少一个包,就少jstl-api
  • maven仓库下载,或者先引入dependency,再导包,

标签百度教程多的是

代码的大致形状如下

<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: KittyGuy
  Date: 2021/2/11
  Time: 13:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="C" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<jsp:forward page="error.jsp"></jsp:forward><%-- 请求转发 --%>
<form action="test.jsp" method="get">
    <label>
        <input type="text" name="user" value="${param.user}">
    </label>
    <input type="submit" name="发送">
</form>
<c:if test="${param.user=='admin'}" var="isT">
    <c:out value="管理员大欢迎"></c:out>
</c:if>
<c:out value="${isT}"></c:out><%--Like <%= ... >--%>
<br>

<c:set var="score" value="90"/><%--定义变量--%>
<c:choose>
    <c:when test="${score<90}"><%--条件语句--%>
        小于90
    </c:when>
    <c:when test="${score>=90}">
        大于等于90
    </c:when>
</c:choose>
<br>
<% ArrayList<String> number = new ArrayList<>();
   number.add("三");
   number.add("四");
   number.add("五");
   request.setAttribute("list",number);
%>
<c:forEach var="n" items="${list}"><%--for(ArrayList n:list)--%>
    <c:out value="${n}"></c:out><br><%-- print(n)--%>

</c:forEach>
<br>
<c:forEach var="c" items="${list}" begin="1" end="2" step="1">
    <c:out value="${c}"></c:out><br>
</c:forEach>
</body>
</html>