JSP开发之JSTL介绍和使用
时间:2022-07-28
本文章向大家介绍JSP开发之JSTL介绍和使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
[TOC]
0x00 简述
什么是JSTL?它有什么作用?
1.答:JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由 apache 的 jakarta 小组来维护的。 2.答:它可以简化JSP代码编写提供比EL表达式更强大的逻辑处理功能;
如何使用JSTL?
- 导入JSTL 支持jar文件 jstl.jar 和 standard.jar
- 在jsp文件页面上使用 taglib 来引入标签库,选择核心代码标签库:
WeiyiGeek.导包
基础示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
// _prefix 只是一个别名_
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
注意事项:
- 在选择引入的标签库时JSTL版本应该选择 1.1 Core library及其以上,因为1.0版本不支持EL表达式;
0x01 基本用法
描述:主要进行记录JSTL基本的一些语法及其用法,与微信的小程序中的wxml内置标签有点像;但是需要注意标签c就是前面prefix设置的别名一一对应的;
1) 变量声明
<p>1) 变量和作用域声明: scope默认是pageContext </p>
<c:set var="name" value="WeiyiGeek" scope="session"></c:set>
输出其值:${sessionScope.name}
2) 条件判断
<p>2) 条件判断:获取表达式返回的值并且存记录在flag变量存储在Session里</p>
<c:set var="age" value="18"></c:set>
<c:if test="${ age > 26 }" var="flag" scope="session">
<b>年龄大于26岁</b>
</c:if>
<c:if test="${ age <= 26}" var="flag1" scope="page">
<b>年龄小于等于26岁</b>
</c:if>
<p>flag:${flag}</p>
<P>flag1:${flag1}</P>
3) 循环迭代
<!--
forEach方式关键参数说明:
- Step 步长
- items 表面需要遍历的对象注意必须写el表达式
- 导入class文件时候需要进行导包
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List" %>
-->
<p>forEach方式1:数字循环</p>
<c:forEach begin="1" end="10" var="i" step="1" >
<span>${i} </span>
</c:forEach>
<P>forEach方式2:自定义一个Persion类注意itemn必须采用EL标签</P>
<%
List list = new ArrayList();
list.add(new Person("WeiyiGeek",21));
list.add(new Person("张伟",21));
list.add(new Person("刘安心",21));
pageContext.setAttribute("list", list);
%>
<c:forEach var="person" items="${list}">
<p><b>姓名:</b> ${person.name}, <b>年龄:</b> ${person.age} </p>
</c:forEach>
例如:通过bsp获取当前登录人名称与试卷创建人名称是否一致:
<!-- when方式 -->
<%
String path = request.getContextPath();
String userName = BspUtil.getInstance().getLoginUserName();
pageContext.setAttribute("userName",userName);
%>
<c:when test="${question.creator == userName}">
<button class="btn btn-danger" id="delete-question-btn">
<i class="fa fa-trash-o"></i> 删除该题
</button>
<button class="btn btn-info" onclick="javascript:window.close();">
<i class="fa fa-times"></i> 关闭页面
</button>
</c:when>
执行结果:
WeiyiGeek.jstl基础语法
注意事项:
- 1.jstl标签别名是在jsp指令 taglib 中进行设置的prefix=”别名”,即
<别名:set var="变量名" value="值"></别名:set>
- 2.jstl在定义变量存在的哪里时候默认是
page
注意这里不是pageContext;
- P2756 飞行员配对方案问题
- P1151 子数整数
- python常见模块之time模块
- U10783 名字被和谐了
- BZOJ 1174: [Balkan2007]Toponyms
- 1355: [Baltic2009]Radio Transmission
- Equation Group(方程式组织)
- Python中下划线---完全解读
- python常见模块之collections模块
- MYSQL之库操作
- 实战-如何获取安卓iOS上的微信聊天记录、通过Metasploit控制安卓
- lightswitch binding custom control
- 3339: Rmq Problem
- Codeforce GYM 100741 A. Queries
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言广义线性模型(GLM)广义相加模型(GAM):多元平滑回归分析保险投资风险敞口
- 面试高频题:springBoot自动装配的原理你能说出来吗?
- R语言巨灾风险下再保险合同定价研究案例:广义线性模型和帕累托分布分析
- nodejs搭建mqtt服务器
- R语言中GLM(广义线性模型),非线性和异方差可视化分析
- 解决java的http请求库dongliu.requests请求结果中文乱码的问题
- 保姆级教程,手把手教你实现一个SpringBoot的starter
- 微服务[学成在线] day05:消息中间件 RabbitMQ
- 微服务[学成在线] day06:页面发布以及课程管理
- 微服务[学成在线] day07:课程管理开发
- 微服务[学成在线] day08:FastDFS 实现课程图片管理
- 【MySQL入门】之细说脏读、幻读及不可重复读
- 微服务[学成在线] day09:Eureka、Feign、课程预览实现
- 【MySQL入门】之MySQL数据库的锁机制(一)
- 【MySQL入门】之MySQL数据库的锁机制(二)