【学习笔记】JSP标签、JSTL标签、EL表达式

JSP标签、JSTL标签、EL表达式

EL 表达式 ${}

作用:

  • 获取数据

  • 执行运算

  • 获取web开发的常用对象

 

JSP 标签

  • 拼接页面

    <jsp:include page="jsp1.jsp"/>
  • 转发,可传递参数

    <%--    参数标签:name 是参数的键,value是参数的值--%>
    <jsp:forward page="/jsptag02.jsp">
        <jsp:param name="name" value="张三"></jsp:param>
        <jsp:param name="age" value="18"></jsp:param>
    </jsp:forward>

    需要注意的是,在jsp标签中不要写注释

    取出参数

    <body>
    <%=request.getParameter("name")%>
    <%=request.getParameter("age")%>
    </body>

 

JSTL标签

JSTL标签库的使用就是为了弥补HTML 的不足,它自定义了许多标签,可以供我们使用,标签的功能和Java代码一样,只是为了更加美观。

要使用JSTL标签必须要引入三个依赖:

  • jakarta.servlet.jsp.jstl-api

  • standard

  • jakarta.servlet.jsp.jstl

在tomcat也需要引入jstl的包,否则会报jstl解析错误

 

JSTL标签包含以下几种类型:

  • 核心标签

  • 格式化标签

  • sql标签

  • xml标签

想要使用某种标签必须,在jsp文件中引入该标签库,比如引入核心标签库

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

我们主要使用核心标签,其他的标签不常使用

c:if 标签

我们提交表单,然后使用c:if判断表单的参数

<body>
<form action="coreif.jsp" method="get">
    <input type="text" name="username" value="${param.username}">
    <input type="submit" value="登录">
</form>
<%--
c:if  的参数:
    test:需要判断的条件
    var:返回的值 true/false
--%>
<c:if test="${param.username=='admin'}" var="isAdmin">
    <c:out value="管理员成功登录"/>
</c:if>
<c:out value="${isAdmin} 登录"/>
</body>

c:if 标签中 还可以 使用 c:out 标签输出,value就是要输出的内容

 

c:set 标签 保存数据 c:when 标签 判断

<body>
<form action="corewhen.jsp" method="get">
    <input type="text" name="score" value="${param.score}">
    <input type="submit">
</form>
<%--使用 c:set 定义一个变量
c:set 标签参数:
        var:定义变量
        value:变量的值
--%>
<c:set var="score" value="${score=param.score}"/>
​
<%--c:choose 标签 里面包含了c:when
 c:when 标签参数:
     test:用于判断
 --%>
<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:when test="${score<=60}">
        你的成绩为不及格
    </c:when>
</c:choose>
</body>

c:when 的判断条件的顺序是从上到下的,在这个例子中,如果顺序搞反,有可能就会逻辑错误

 

c:forEach 标签 循环

我们以循环集合为例

<body>
<%
  ArrayList<String> citys = new ArrayList<>();
  citys.add("北京");
  citys.add("上海");
  citys.add("广州");
  citys.add("深圳");
  citys.add("苏州");
  citys.add("济南");
  //需要把这个集合放到erquest 或 pageContext / session / application 中
  request.setAttribute("citys",citys);
​
%>
<%--
c:forEach 参数:
   var:每一次遍历的变量
   items:遍历的对象
--%>
<c:forEach var="city" items="${citys}">
  <c:out value="${city}"/>
</c:forEach>
</body>

这是forEach循环,下面是普通的for循环

<%--
c:forEach 参数:
   var:每一次遍历的变量
   items:遍历的对象
   begin:遍历开始的索引
   end:遍历结束的索引
   step:步长
--%>
<c:forEach var="city" items="${citys}" begin="1" end="4" step="1">
  <c:out value="${city}"></c:out>
</c:forEach>
posted @ 2022-10-21 20:02  GrowthRoad  阅读(41)  评论(0编辑  收藏  举报