Java web后端7JSTL

概括

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下载jstl的jar包

官网:https://mvnrepository.com/
网址1:https://search.maven.org/
在pomxml中插入依赖:

        <dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>

再刷新Maven即可

使用jstl

在jsp页面中填写
使用jsp指令引入jstl标签库
在这里插入图片描述

<c:out>标签

HTML编码:空格:&nbsp;小于:&lt;大于:&gt;
常与el表达式配合使用:
获取http请求消息体中username参数的值(用户输入的值):${param.username}
如:

<%--使用c标签--%>
<c:out value="${param.username}" default="unknown"/>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例:
在这里插入图片描述
代码:

<%--使用c标签1--%>
<c:out value="${param.username}" default="unknown"/><%--使用c标签2--%>
<c:out value="${param.username}"  escapeXml="true">
<%-- 输出:<a href="https://editor.csdn.net/md?not_checkout=1&articleId=121206585">CSDN</a>--%><a href="https://editor.csdn.net/md?not_checkout=1&articleId=121206585">CSDN</a>
</c:out>

<c:if>标签

相当于java中的if
在这里插入图片描述
在这里插入图片描述
案例:
在这里插入图片描述


<c:set value="1" var="test" property="test"/>
<%--c:if语句--%>
<c:if test="${test eq 1}">this is your first time!
</c:if>

<c:choose>标签

在这里插入图片描述
在这里插入图片描述

案例:成绩判断

html代码:

<form action="score.jsp"><label>请输入你的成绩:</label><br/><input type="text" name="score"><br/><input type="submit" value="提交"><input type="reset" value="重置"><br/>
</form>

c:choose代码:


<c:choose><c:when test="${empty param.score}">你还没有输入,请先输入!</c:when><c:when test="${!param.score.matches('-*[0-9]+')}">你输入的成绩不为数字,请重新输入!</c:when><c:otherwise><c:choose><%--成绩越界!--%><c:when test="${(param.score lt 0)  or (param.score gt 100)}">你输入的成绩超出范围!</c:when><%--0<=score<=100100 满分90-99 优秀80-89 优良70-79 良好60-69 及格0-59不及格--%><c:when test="${param.score eq 100}">满分!</c:when><c:when test="${(param.score ge 99) and (param.score le 90) }">优秀!</c:when><c:when test="${(param.score ge 80) and (param.score le 89) }">优良!</c:when><c:when test="${(param.score ge 70) and (param.score le 79) }">良好!</c:when><c:when test="${(param.score ge 60) and (param.score le 69) }">及格!</c:when><c:when test="${(param.score ge 0) and (param.score le 59) }">不及格!</c:when><c:otherwise>你输入的不是数字!</c:otherwise></c:choose></c:otherwise>
</c:choose>

总代码:

<%@ page import="java.util.regex.Pattern" %>
<%@ page import="java.util.regex.Matcher" %><%--Created by IntelliJ IDEA.User: DQDate: 2021/11/8Time: 15:08To change this template use File | Settings | File Templates.
--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>成绩</title>
</head>
<body><form action="score.jsp"><label>请输入你的成绩:</label><br/><input type="text" name="score"><br/><input type="submit" value="提交"><input type="reset" value="重置"><br/>
</form><hr/>
你成绩的等级是:<br/><c:choose><c:when test="${empty param.score}">你还没有输入,请先输入!</c:when><c:when test="${!param.score.matches('-*[0-9]+')}">你输入的成绩不为数字,请重新输入!</c:when><c:otherwise><c:choose><%--成绩越界!--%><c:when test="${(param.score lt 0)  or (param.score gt 100)}">你输入的成绩超出范围!</c:when><%--0<=score<=100100 满分90-99 优秀80-89 优良70-79 良好60-69 及格0-59不及格--%><c:when test="${param.score eq 100}">满分!</c:when><c:when test="${(param.score ge 99) and (param.score le 90) }">优秀!</c:when><c:when test="${(param.score ge 80) and (param.score le 89) }">优良!</c:when><c:when test="${(param.score ge 70) and (param.score le 79) }">良好!</c:when><c:when test="${(param.score ge 60) and (param.score le 69) }">及格!</c:when><c:when test="${(param.score ge 0) and (param.score le 59) }">不及格!</c:when><c:otherwise>你输入的不是数字!</c:otherwise></c:choose></c:otherwise>
</c:choose></body>
</html>

<c:forEach>标签

在这里插入图片描述
在这里插入图片描述
案例:
在这里插入图片描述
代码:

<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: DQDate: 2021/11/8Time: 15:24To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%--c:forEach1--%>
<%String[] fruits = {"apple", "orange"};
%>
<c:forEach var="name" items="<%=fruits%>">${name}<br/>
</c:forEach><%--c:forEach2--%>
<%Map map=new HashMap();map.put("name1","dq1");map.put("name2","dq2");
%><c:forEach var="m" items="<%=map%>">${m.key}==${m.value}<br/>
</c:forEach><%--forEach3:普通for方式--%>
<c:forEach var="i" begin="1" end="10">${i}<br/>
</c:forEach>
</body>
</html>

案例2:九九乘法表
在这里插入图片描述
代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head><title>九九乘法表改写</title>
</head>
<body>
<table><tr><c:forEach var="i" begin="1" end="9"><c:forEach var="j" begin="1" end="${i}"><td style="border: green solid 2px;padding: 1px">${i}*${j}=${i*j}</td></c:forEach></tr></c:forEach>
</table>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习14 模块和包

模块 公共类、函数都可以放在独立的文件中&#xff0c;这样其他多个程序都可以使用&#xff0c;而不必把这些公共性的类、函数等在每个程序中复制一份&#xff0c;这样独立的文件就叫做模块&#xff0c;它们的扩展名为.py 标准库中的模块 使用help查看模块 代码&#xff1a; …

python语句分为_python以什么划分语句块

语句块是在条件为真&#xff08;条件语句&#xff09;时执行或者执行多次&#xff08;循环语句&#xff09;的一组语句&#xff1b;在代码前放置空格来缩进语句即可创建语句块&#xff0c;语句块中的每行必须是同样的缩进量&#xff1b;&#xff08;推荐学习&#xff1a;Python…

Python学习15 正则表达式1

网址 正则表达式测试网址&#xff1a;https://regex101.com/ 概述 正则表达式&#xff1a; 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为"元字符"…

STL源码剖析 空间配置器 查漏补缺

ptrdiff_t含义 减去两个指针的结果的带符号整数类型ptrdiff_t (Type support) - C 中文开发手册 - 开发者手册 - 云社区 - 腾讯云 std::set_new_handler&#xff08;&#xff09;函数的理解 关于set_new_handler的理解_wck0617-CSDN博客new分配内存的时候 如果分配的空间不…

Python学习16 正则表达式2 re模块

re 模块 re 模块&#xff1a; Python的 re 模块实现了正则表达式处理的功能。 导入re模块后&#xff0c;使用findall、search函数可以进行匹配 查找&#xff1a;match和search 多个匹配上的&#xff0c;也只会返回第一个匹配上的 re.match()&#xff1a; 需要特别注意的是&…

STL源码剖析 内存基本处理工具 初始化空间的五个函数

初始化空间的五个函数构造函数 construct()析构函数 destroy()剩余三个底层函数 和 高层函数之间的对应关系如下uninitialized_copy() 对应 copy()uninitialized_fill() 对应 fill()uninitialized_fill_n() 对应 fill_n()使用<memory>使用上述三个底层函数 uninitiali…

单基因gsea_筛到5分的核心基因以后你可以怎么做?

这一次我们从一些已经发表的文章拆解&#xff0c;我们来看看&#xff0c;你找到了一个核心基因以后&#xff0c;你可以怎么做呢&#xff1f;我们就不说那么多废话了&#xff0c;直接用几篇文章的解读来带着大家领会一下如何去进行下一步的分析。Case1&#xff1a;预后标志物免疫…

STL源码剖析 迭代器的概念和traits编程技法

迭代器&#xff1a;依序巡防某个聚合物(容器)所含的各个元素&#xff0c;但是不需要暴露这个聚合物的内部表述方式核心思想&#xff1a;将容器和算法分开&#xff0c;彼此独立设计容器和算法的泛型化&#xff0c;均可以使用模板&#xff0c;使用迭代器连接容器和算法例子 templ…

STL源码剖析 5中迭代器型别

最常使用的5种迭代器的型别 为 value_type、difference_type、pointer、reference、iterator_category。如果想要自己开发的容器和STL进行适配&#xff0c;就需要定义上述5种类型 iteraor_traits 必须针对传入的型别为 pointer 或者 pointer-to-const设计偏特化版本 template &…

加载tf模型 正确率很低_深度学习模型训练全流程!

↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习&#xff0c;不错过Datawhale干货 作者&#xff1a;黄星源、奉现&#xff0c;Datawhale优秀学习者本文从构建数据验证集、模型训练、模型加载和模型调参四个部分对深度学习中模型训练的全流程进行讲解。一个成…

Python学习17 Turtle库绘图

学习网址&#xff1a;https://docs.python.org/zh-cn/3/library/turtle.html Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库&#xff0c;一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff08;画布中心&#xff09;&#xff0c;(0,0)位置开…

android ros 节点编写_嵌入式的我们为什么要学ROS

前言本来是要写一篇STM32移植ROS的一个小lib库&#xff0c;ROS一般都是需要跑在Linux上的&#xff0c;STM32使用就是当成一个ROS通讯的小节点&#xff0c;但是写文章时间不够&#xff0c;所以就简单做一篇ROS的介绍文章&#xff0c;分享给嵌入式的小伙伴们。ROS现在在机器人领域…

STL源码剖析 __type_traits

traits编程 弥补了C本身的不足STL只对迭代器进行规范制定出了iterator_traits&#xff0c;SGI在此基础上进一步扩展&#xff0c;产生了__type_traits双下划线的含义是这个是SGI内部使用的东西&#xff0c;不属于STL标准iterator_traits 负责萃取迭代器的特性__type_traits负责萃…

STL源码剖析 序列式容器|Vector

容器的概观和分类 array 数组 、list 链表、tree树 、stack堆栈、queue队列、hash table散列表、set集合、map映射表根据数据在容器中的排列顺序&#xff0c;将上述数据结构分为序列式和关联式两种类型SGI STL使用内缩方式来表达基层和衍生层之间的关系衍生不是派生&#xff0…

ansible 修改文件变量_Ansible Playbook中的变量与引用

Ansible是一个系列文章&#xff0c;我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点&#xff0c;让学习变的有趣一些。Ansible自动化运维前言前面有说到使用playbook来搞一些复杂的功能&#xff0c;我们使用YAML来写playbook&#xff0c;就像我们用其它语言…

STL源码剖析 list概述

目录 list的节点(node) list迭代器 list 的构造和内存管理 list 的元素操作 list相较于vector连续的线性空间就显得很复杂&#xff0c;他的存储空间是不连续的&#xff0c;好处是每次插入和删除一个元素的时候&#xff0c;只需要配置或者释放一个元素的空间 插入和删除十分的…

vsftp不允许切换到其它目录_IntelliJ IDEA如何对project的目录进行筛选显示?

如果你的项目很庞大&#xff0c;同一个功能用到的各种文件散落在多个文件夹&#xff0c;开发时切换不便&#xff0c;可以利用scope功能&#xff0c;只显示该功能用到的文件&#xff0c;让project列表十分清爽&#xff0c;提高开发效率。本文使用的IDEA版本为2020.1。1、打开sco…

密码学专题 对称加密算法

一般来说&#xff0c;使用OpenSSL对称加密算法有两种方式&#xff0c;一种是使用API函数的方式&#xff0c;一种是使用OpenSSL提供的对称加密算法指令方式。本书将介绍对称加密算法的指令方式OpenSSL的对称加密算法指令主要用来对数据进行加密和解密处理&#xff0c;输入输出的…

网络防火墙单向和双向_单向晶闸管与双向晶闸管之间的不同之处

晶闸管是回一个可以控导点开关&#xff0c;能以弱电去控制强电的各种电路。晶闸管常用于整流&#xff0c;调压&#xff0c;交直流变化&#xff0c;开关&#xff0c;调光等控制电路中。具有提交小&#xff0c;重量轻&#xff0c;耐压高&#xff0c;容量大&#xff0c;效率高&…

python版本切换_怎么切换python版本

展开全部 &#xff08;1&#xff09;分别安2113装 python-2.7.12.amd64.msi python-3.5.2-amd64.exe &#xff08;python官网下载的&#xff09; 顺序无所谓&#xff08;为5261了看着4102方便&#xff0c;我把安装路径修改统一了1653&#xff09; &#xff08;2&#xff09;配置…