JavaWeb简单示例——JSTL

简单介绍:

JSTL是一个不断完善的开放源代码的JSP标签库,使用HSTL可以取代在传统JSP页面中嵌入Java代码的做法,大大提高了程序的可维护性。

JSTL包含了核心标签库,国际化 /格式化标签库,SQL标签库,XML标签库和函数标签库五部分组成,我们主要探讨的就是核心标签库(别问为什么,因为教材上就是这么说的)

在使用之前,我们需要先去官网下载我们需要的核心代码库的jar包

JSTLjar包下载地址

下载后解压出来,在lib目录下有两个jar包,这就是我们需要的JSTL驱动包

将这个驱动包复制到我们项目的lib目录下,然后右键点击,添加为库,前期的准备工作就完成了

 在正式开始使用之前,需要先使用JSP的taglib指令将JSTL的标签库引入到JSP页面中

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

在JSP页面的最上面添加上面的代码就将JSTL的标签库引入到JSP页面了

常用的JSTL的核心标签库:

由于JSTL是一个非常完善的且不断更新的标签库,所以这里仅拿出几个常用的标签进行讲解,其余的标签可以上官网进行查阅使用(官网真是好东西)

<c:out>:输出标签:

在c:out标签内有一个必须的属性value,值就是我们想要输出的值,当value的值为null的时候,会输出标签体中的内容,如果没有标签体会使用default属性指定的值。标签内还有一个可选属性为escapeXml,该属性的含义是是否将一些特殊字符转义成普通字符后再输出到HTML页面中,可选值为true或false,默认是true

<c:out value="HelloWord">
    <p>这里是输出的默认内容</p>"
</c:out>

<c:remove>:移除标签:用于移除指定JSP范围内的变量

语法格式:<c:remove var="name" [scope="范围"]>

其中var属性指向的是需要移除的变量名,scope指向的是在什么范围内移除这个变量,这个范围值得就是JSP中的四大作用域,如果不指定范围,则会删除所有范围内变量名指向的值

流程控制标签:

<c:if>:在标签中有一个必须的属性test,这个属性的值为需要进行判断的表达式,如果表达式为真,则会显示标签体中的内容

<c:if test="true">
    <p>如果表达式为真则会显示标签体中的内容</p>
  </c:if>

<c:choose>,<c:when>,<c:otherwise>:等价与else—if或者switch判断

 <c:choose>是用来包裹其他两个标签的容器,<c:when>是用来进行判断选择的标签,<c:otherwise>是当所有的判断选择都不符合时进行输出的最后一个分支

<c:set value="1" var="count" property="count">
    
  </c:set>
  <c:choose>
    <c:when test="${count == 1}">
      <p>这是第一个分支</p>
    </c:when>
    <c:when test="${count == 2}">
      <p>这是第一个分支</p>
    </c:when>
    <c:when test="${count == 3}">
      <p>这是第一个分支</p>
    </c:when>
    <c:otherwise>
      <p>如果都不匹配这里是最后的分支</p>
    </c:otherwise>
  </c:choose>

循环标签:

<c:forEach>:用来代替循环标签进行遍历循环的,其中的属性有:items,值是被遍历的数组,var,值是数组中的单个数据对象,可以调用数组中的单个对象中的属性,begin,遍历常数时的开始值,step,步长,遍历常数的时候的间隔,end,遍历常数的时候的结束值,我们将从遍历数组和遍历常数两种方式来体验forEach标签

遍历对象数组:

创建一个存放数据的标准类:

package Semester_3.src.Util_7;

public class User {
    private String name;
    private String password;

    public User() {
    }

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 创建对象,存入数组,存储到域,进行遍历:

<%@ page import="java.util.ArrayList" %>
<%@ page import="Semester_3.src.Util_7.User" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/24
  Time: 19:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试JSTL</title>
</head>
<body>
<%
    ArrayList<User> Users = new ArrayList<>();
    Users.add(new User("张三","123"));
    Users.add(new User("李四","456"));
    Users.add(new User("王五","456"));
    request.setAttribute("Users",Users);
%>
<c:forEach items="${Users}" var="User">
    <p>用户名为:${User.name}</p>
    <p>密码为:${User.password}</p>
</c:forEach>
</body>
</html>

注意点: 

在遍历对象的时候,var属性指向的值就变成了数组中存储的对象,可以调用对象的get方法获取数据,所以这里User.name获取对象的属性值的时候访问的并不是对象的name变量,而是getName方法。服务器在解析User.name的时候,会自动将name的首字母大写并加上get组合成getName,对应对象中的个getName()方法,从而获取数据,所以当我们修改一下User对象中的getName方法名的时候就无法正常的获取到数据了。

遍历常数:

相比遍历对象数据,遍历常数就非常的简单了,只需要定义,begin(开始),step(步长/间隔),end(结束),var(临时变量)四个属性即可

<c:forEach begin="0" step="1" end="10" var="i">
    <p>${i}</p>
</c:forEach>

URL相关标签:URL相关的标签是将链接中的参数进行编码解码之后重构成一个完整的URL,可以解决因为参数不识别或者参数编码问题导致的运行异常

URL相关标签的使用比较简单,常用的标签有<c:url>和<c:param>

<c:url>标签的属性是var,值是重构后的url的表达式,value属性,值是要链接的文件的路径

<c:param>标签是被<c:url>标签包裹的,name属性是url参数的名字,value是url参数的值。<c:param>可以有多个,对应也就是可以有多个参数,

举个栗子:

<c:url var="myurl" value="/ServletDemo15">
    <c:param name="name" value="张三">
        
    </c:param>
</c:url>
<a href="${myurl}">点击链接</a>

在使用重构后的链接时,使用EL的方式,内部放的时<c:url>标签的var属性对应的值

看一下最终重构出来的完整的URL:

可以看到,原本是中文的张三,在重构的时候就进行了编码转换成了不易出错的编码格式,这就是url相关标签重构URL链接的最大的作用

 

Error_exception_worn
关注 关注
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb核心技术系列教程(28)——JSTL入门
谷哥的小弟
10-07 401
之前,我们介绍了JSP常用便签以及JSP自定义标签。其实,早在从JSP 1.1规范开始JSP就支持使用自定义标签了,使用自定义标签极大地降低了JSP页面的复杂度,同时增强了代码的重用性;所以,自定义标签在WEB应用中被广泛使用。故,许多WEB应用厂商都开发出了自己的一套标签库,这导致出现了许多功能相同的标签,令开发人员无从选择,无所适从,手忙脚乱。为了解决该问题,Sun公司研发了一套JSP标准标签库(Java Server Pages Standard Tag Library),简称JSTL
JavaWeb核心技术系列教程(30)——JSTL Functions标签库
谷哥的小弟
10-08 419
为简化JSP页面中对字符串的操作,JSTL中的Functions标签库中提供了一套自定义 EL函数。在JSP页面中,可使用taglib指令引入Functions标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>该标签库中的函数和JavaSE中相关方法基本完全一致;故,在此省略针对各函数的详细讲解,我们以示例的形式学习Functions标签库中常用函数。
JavaWeb| JSTL标签库看这篇文章就够了!(含案例
Kuls
07-20 281
点击上方“JAVAandPython君”关注我们1写在前面的话 今天给大家写一篇Web系列的文章,大部分人可能会觉得Web的东西很基础,如果这方面你很精通了可...
javaweb项目引入jstl
qq_41304029的博客
12-14 365
jsp当中引入jsp标准标签库
Javaweb简单例子(二)
Genven_Liang的博客
07-21 921
Javaweb简单例子(二) 一、简述     在Javaweb简单例子(一)的基础上添加验证码、图片上传功能,并使用session保存登录状态。     文件打包:链接: https://pan.baidu.com/s/1psj69zjFclq3tvV-Y-UI2w 密码: dc5x 二、效果          在注册页面通过ajax异步检查用户名是否已存在,添加了验证码;登录成功...
【WEB】JSTL简单实例
Bry'ce的博客
08-20 322
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。 根据JSTL标签所提供的功能,可以将其分为5个类别。 核心标签 格式化标签 SQL 标签 XML 标签 JSTL 函数 配置JSTL标签库的jar到类路径...
JavaWeb-简单查询商品例子
Kid_TH的博客
11-27 8983
JavaWeb-简单查询商品例子CustomerServlet.javapackage com.subing.web;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; impo
javaweb——EL表达式和JSTL
weixin_54397792的博客
11-16 1577
文章目录一、初识JavaBean二、EL表达式1.1 初识 EL 表达式 EL在开发中,通常是用来获取域对象中保存的值,基本语法:${域对象的名称}。1.2 EL表达式中的标识符 在el书写过程中,会用一些符号来标记变量、函数名等,这些符号称之为标识符。1.3 EL中的变量1.4 EL 中的常量1.5 EL中的运算符三、JSTL1.1JSTL概述1.2 JSTL中的Core标签 一、初识JavaBean 首先明确的是JavaBean是一种Java类,而且是一种特殊的、可重用的类。 必须具有无参数的构造器
JavaWeb核心技术系列教程(29)——JSTL Core标签库
谷哥的小弟
10-07 610
Core标签库是JSTL中的核心标签库,该库中包含Web应用中通用操作的标签。在JSP页面中,可使用taglib指令引入Core标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 在此,我们对该库中的常用标签进行详细讲解。
JavaWeb核心技术系列教程(31)——JSTL I18N标签库
谷哥的小弟
10-08 380
JSTL中I18N标签库是国际化、格式化标签库,它包含实现Web应用程序的国际化标签和格式化标签。例如,设置JSP页面的本地信息、设置JSP页面的时区、按照本地格式显示日期等。在JSP页面中,可使用taglib指令引入I18N标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>该标签库中的函数和Java中相关方法基本一致;故,在此省略针对各标签的详细讲解,我们以示例的形式学习I18N标签库中常
jstl 常用例子
zs博客
09-13 450
1.         value 赋值   var  给一个标识   scope   作用域   2    取到  的值 3.      循环
JSTL简单入门学习实例
weixin_30553065的博客
07-10 81
Maven依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</versi...
JSTL简介以及简单示例
xd1501013的博客
04-23 723
JSTL标准标签库1.概念2.安装3.代码示例 1.概念 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。 根据JSTL标签所提供的功能,可以将其分为5个类别。 核心标签 核心标签是最常用的 JSTL标签...
JavaWeb简单示例——Listentr(监听器)
hssjsh的博客
10-31 198
JavaWeb简单实例——Linstener监听器的简单说明和使用
JSTL标签的使用示例
陈 浩
08-01 917
一、什么是JSTL标签          JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。(引用自百度百科) 二、如何加载JSTL标签 以MyEclipse工具为例 1.导入标签库 (a)当使用J2EE5.0开发时,不需要手动导
JavaWeb】 14-jstl标签库
JeffHan^_^的博客
07-26 105
是一个复合jsp标准的标签库语言 作用: 用于替代java脚本,和el表达式联合使用 使用前的注意事项: 1. 引入依赖 jstl.jar standard.jar 2. 在页面上导入标签库并声明前缀 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 标签库的分类: 1. core:核心类库 2. fmt:格式化类库 3. xml:过时 4. sql:过时 5. functions:函数库,使用很少 1. 核.
javaweb 如何导入jstl
qq_53344479的博客
09-24 164
Index of /dist/jakarta/taglibs/standard/binaries (apache.org)
【教程】JavaWebJSTL标签
Java修炼记
10-29 481
JavaWebJSTL标签欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习
Java Web JSTL (实例)
weixin_34345753的博客
07-25 101
out.jsp 代码: &lt;%@ page language="java" pageEncoding="utf-8"%&gt;&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;&lt;html&gt; &lt;head&gt;  &lt;title&gt;
javaweb用idea写一个学生管理系统
最新发布
05-05
好的,下面是一个简单的学生管理系统的实现步骤: 1. 创建一个 Maven 项目,选择 Web Application 类型,添加 Spring MVC 依赖。 2. 创建一个名为 Student 的 JavaBean,用于表示学生信息,包含 id、name、age 等属性。 3. 创建一个名为 StudentService 的接口,定义增删改查学生信息的方法。 4. 创建一个名为 StudentServiceImpl 的类,实现 StudentService 接口,并使用 List 存储学生信息。 5. 创建一个名为 StudentController 的控制器类,处理学生信息的增删改查请求,使用依赖注入方式将 StudentServiceImpl 注入其中。 6. 创建一个名为 student.jsp 的 JSP 页面,用于显示学生信息列表和表单,使用 JSTL 和 EL 表达式进行数据绑定。 7. 配置 Spring MVC,将请求映射到 StudentController 中的方法,并添加视图解析器,指定 JSP 页面的路径。 8. 部署项目到 Tomcat 中,启动服务器,访问 http://localhost:8080/student 可以访问学生管理系统。 以上是简单的学生管理系统的实现步骤,可以根据自己的需求进行扩展和改进。
167
原创
174
点赞
537
收藏
138
粉丝
关注
私信
写文章

热门文章

  • Telegram死循环(已解决) 44653
  • Vue简单示例——weex跨平台解决方案 4268
  • JavaWeb问题解决:关于JSP中使用System类会出现服务器错误的情况 3888
  • SpringBoot——默认页面在哪里? 3662
  • JavaWeb实现简单购物车案例 3362

分类专栏

  • Python基础 2篇
  • Java基础 1篇
  • SpringCloud 11篇
  • 微信小程序 3篇
  • MySQL基础 6篇
  • Redis 2篇
  • 数据分析
  • 数据结构

最新评论

  • Telegram死循环(已解决)

    Error_exception_worn: 我这里现在是没有了,节点都不能用,要不集资我开一下大家一起用的海外代理表情包

  • Telegram死循环(已解决)

    Error_exception_worn: 解决了就好

  • Telegram死循环(已解决)

    Error_exception_worn: 他有对应的官网我记得,可以去外面搜索一下找一下

  • Telegram死循环(已解决)

    zhangyu1226: 多谢解答,问题已解决 表情包

  • Telegram死循环(已解决)

    柒月拾金: 有免费的代理嘛老哥

最新文章

  • Python配置国内镜像源
  • Java中的Lambda表达式
  • PythonWeb——Django框架
2024年3篇
2023年117篇
2022年47篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司南京网站优化团队龙岗网站关键词优化哪家强濮阳家装行业网站优化推广有用吗怎么优化网站简便易速达兴城网站优化关键词优化发文章的网站衡量网站优化标准马鞍山市手机网站优化如何优化社区网站泸州网站整站优化服务临汾百度网站优化邢台网站优化四川安徽网站优化网站安全性优化石岛网站优化代理商福泉市网站优化公司海宁怎么做网站优化高端装备网站优化哪家公司好淘宝里的网站优化靠的住吗陕西网站优化咨询网站内链接优化龙岩网站seo优化团队沧州网站推广优化商集客电话网站结构优化中什么是合理结构推广网站优化公司哪家好网站建设优化心细火23星去荔湾网站推广优化教程武安网站seo优化排名汕头网站优化关键词多少钱河源安天网站优化公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化