javaweb学习19:JSP, JSTL标签


javaweb学习19:JSP, JSTL标签

  • JSP标签:3种

    <jsp:include />
    ?
    <%--页面转发:
       http://localhost:8080/jsptag.jsp?name=张三&age=12
    --%>
    <jsp:forward page="/jsptag2.jsp">
       <jsp:param name="name" value="张三"/> //参数
       <jsp:param name="age" value="12"/> //参数
    jsp:forward>
    ?

 

  • JSTL标签库:

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

       

    • 核心标签:(掌握部分即可)

    • 格式化标签:

    • SQL标签:

    • XML标签:

 

  • JSTL标签库使用步骤:

    • 引入对应的taglib:

      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    • 使用其中的方法;

    • 在Tomcat也需要引入jstl包,否则也会报taglib的错误;

 

  • EL表达式:(EL:Expression Language)

    • 语法:

      EL表达式语法:
      ${ }
      ?
    • 作用:

      • 获取数据;

      • 执行运算;

      • 获取web开发的常用对象;

       

    • 依赖包:


      <dependency>
         <groupId>javax.servlet.jsp.jstlgroupId>
         <artifactId>jstl-apiartifactId>
         <version>1.2version>
      dependency>
      ?

      <dependency>
         <groupId>taglibsgroupId>
         <artifactId>standardartifactId>
         <version>1.1.2version>
      dependency>

 

  • 代码案例:JSTL,EL表达式

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    ?
    <%--引入JSTL核心标签库,我们才能使用JSTL标签
       prefix="c":c代表core
    --%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    ?
    <html>
    <head>
       <title>Titletitle>
    head>
    <body>
    ?
    <h4>if测试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>
    ?

     

  • 代码案例:JSTL标签:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
       <title>Titletitle>
    head>
    <body>
    ?
    <%--定义一个变量score,值为85 --%>
    <c:set var="score" value="85"/>
    ?
    ?
    <c:choose >
       <c:when test="${score>=90}">
          你的成绩为优秀!
       c:when>
       <c:when test="${score>=60}">
          你的成绩为良好!
       c:when>
       <c:when test="${score<=60}">
          你的成绩为差!
       c:when>
    c:choose>
    ?
    ?
    ?
    body>
    html>
    ?

     

  • 代码案例:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page import="java.util.ArrayList" %><%--
     Created by IntelliJ IDEA.
     User: lujiaxiang
     Date: 2022/3/28
     Time: 18:52
     To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
       <title>Titletitle>
    head>
    <body>
    ?
    <%
       ArrayList<String> people = new ArrayList<>();
       people.add(0,"张三");
       people.add(1,"李四");
       people.add(2,"王五");
       people.add(3,"赵六");
       request.setAttribute("list",people);
    %>
    ?
    <%--
       var:每一次遍历出来的变量;
       times:要遍历的对象
    --%>
    <c:forEach var="people" items="${list}">
       <c:out value="${people}"/>
       <br>
    c:forEach>
    ?
    <hr>
    ?
    <%--
       var:每一次遍历出来的变量;
       times:要遍历的对象
       begin:哪里开始
       end:到哪里
       step:步长
    --%>
    <c:forEach  var="people" items="${list}" begin="1" end="3" step="2">
       <c:out value="${people}"/>
    c:forEach>
    ?
    ?
    body>
    html>
    ?