javaweb-21:JSP、JSTL标签

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

依赖:

 <!-- 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表达式:${}

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象
  • 调用java方法(基本废弃了)

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标签

  • 核心标签(掌握部分)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjOaeb7v-1634378865850)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-21:JSP、JSTL标签.assets\image-20211016165114614.png)]

JSTL标签库使用步骤:

  • 引入对应的taglib
  • 使用其中的方法

代码show

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与别的版本不同】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MivuYaGx-1634378865860)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-21:JSP、JSTL标签.assets\image-20211016170256916.png)]

解决:

将项目中的jstl和taglib jar包拷贝到tomcat的lib目录下,重新部署即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wu0gdUVv-1634378865865)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-21:JSP、JSTL标签.assets\image-20211016170551398.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WLEYRZ53-1634378865871)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-21:JSP、JSTL标签.assets\image-20211016170507044.png)]

2.jstl头文件不用手工写,在idea如果要用c:out,回车就会自动导入相应的头文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RZkWZe8T-1634378865876)(C:\Users\Administrator\Desktop\学习笔记\javaweb\javaweb-21:JSP、JSTL标签.assets\image-20211016180023647.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值