admin 管理员组文章数量: 886992
08.JSTL
08.JSTL
一、简介
- 全称:Jsp Standard Tag Library,jsp标准标签库,用来代替JSP中的脚本片段
- 标签库的分类
- 核心标签库
- 我们也称为c标签
- 函数标签库
- 结合EL表达式使用,可以对字符串进行截取、替换等操作
- 格式化标签库
- 主要用来进行国际化的操作
- sql标签库(淘汰)
- xml标签库(淘汰)
- 核心标签库
- 使用标签库需要导入以下jar包
- taglibs-standard-impl-1.2.5.jar
- taglibs-standard-spec-1.2.5.jar
二、核心标签库
- 使用核心标签库需要在页面中通过taglib指令引入c标签
<%@ taglib prefix="c" uri="" %>
-
常用的标签
- set标签
<%--1.set标签(分页时会用到):用来向域对象中添加属性,默认放到page域中var属性:设置向域对象中添加属性的keyvalue属性:设置向域对象中添加的属性值scope属性:设置将属性值放到那个域中,可选值为page、request、session、application--%><c:set var="hello" value="JSTL" scope="page"></c:set><c:set var="hello" value="JSTL" scope="request"></c:set><c:set var="hello" value="JSTL" scope="session"></c:set><c:set var="hello" value="JSTL" scope="application"></c:set>page域中的属性值是:${pageScope.hello}<br>request域中的属性值是:${requestScope.hello}<br>session域中的属性值是:${sessionScope.hello}<br>application域中的属性值是:${applicationScope.hello}<br><hr>
- remove标签
<%--2.remove标签:用来移除域对象中的属性,默认全域移除var属性:设置要移除的域对象中属性的keyscope属性:设置要移除的域,可选值为page、request、session、application--%><c:remove var="hello" scope="session"></c:remove>page域中的属性值是:${pageScope.hello}<br>request域中的属性值是:${requestScope.hello}<br>session域中的属性值是:${sessionScope.hello}<br>application域中的属性值是:${applicationScope.hello}<br>
- if标签
<%--★1.if标签:相当于Java中的if条件判断test属性:接受一个布尔类型的值,通常通过EL表达式获取,当值是true时才执行标签体中的内容--%><%int age = 18;//将age放到page域中pageContext.setAttribute("age",age);%><c:if test="${pageScope.age >= 18}">您已成年,尽情浏览,注意身体!</c:if><c:if test="${pageScope.age < 18}">未成年人禁止入内!</c:if><hr>
- choose标签
<%--2.choose标签(分页时会用到):相当于Java中的if...else if...else注意:1)when标签和otherwise标签要在choose标签中使用2)一定要注意多个when标签的书写顺序,只要有一个when满足条件其他的就不再执行--%><c:choose><c:when test="${age > 40}">曹孟德来了</c:when><c:when test="${age > 35}">大龄剩女</c:when><c:when test="${age > 20}">妙龄少女</c:when><c:when test="${age > 16}">花季少女</c:when><c:when test="${age > 11}">豆蔻年华</c:when><c:otherwise>小屁孩儿</c:otherwise></c:choose>
-
forEach标签
- Servlet代码
package com.atguigu.jstl.servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List;@WebServlet(name = "GetStarsServlet",urlPatterns = "/GetStarsServlet") public class GetStarsServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//假设从数据库中查询到一个ListList<String> stars = new ArrayList<>();//向stars中添加明星stars.add("李小璐");stars.add("马蓉");stars.add("文章");stars.add("罗志祥");stars.add("萧亚轩");stars.add("比尔盖茨");stars.add("吴秀波");stars.add("李宗盛");//将List放到request域中request.setAttribute("stars",stars);//转发到显示的页面request.getRequestDispatcher("/forEach.jsp").forward(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);} }
- jsp页面
<%--Created by IntelliJ IDEA.User: 韩总Date: 2021/5/22Time: 15:10To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="" %> <html> <head><title>forEach标签</title> </head> <body><%--★forEach标签:相当于Java中的for循环begin属性:设置循环的开始值,值必须是大于等于0的数end属性:设置循环结束的值var属性:设置一个变量接收遍历到的值,同时会以变量值为key放到page域中step属性:设置步长,默认是1--%><c:forEach begin="1" end="10" var="index" step="2"><a href="#">${pageScope.index}</a></c:forEach><hr><%--items属性:接收一个遍历的集合var属性:设置一个变量接收遍历到的值,同时会以变量值为key放到page域中--%><c:if test="${empty requestScope.stars}"><h1>世界很美好!</h1></c:if><c:if test="${!empty requestScope.stars}"><c:forEach items="${requestScope.stars}" var="star"><a href="#">${star}</a><br></c:forEach></c:if></body> </html>
本文标签: 08JSTL
版权声明:本文标题:08.JSTL 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732351579h1533222.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论