前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSP开发之JSTL介绍和使用

JSP开发之JSTL介绍和使用

作者头像
全栈工程师修炼指南
发布2022-09-29 15:59:01
5800
发布2022-09-29 15:59:01
举报

[TOC]

0x00 简述

什么是JSTL?它有什么作用?

1.答:JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由 apache 的 jakarta 小组来维护的。 2.答:它可以简化JSP代码编写提供比EL表达式更强大的逻辑处理功能;

如何使用JSTL?

  1. 导入JSTL 支持jar文件 jstl.jar 和 standard.jar
  2. 在jsp文件页面上使用 taglib 来引入标签库,选择核心代码标签库:
WeiyiGeek.导包
WeiyiGeek.导包

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基础语法
WeiyiGeek.jstl基础语法

WeiyiGeek.jstl基础语法

注意事项:

  • 1.jstl标签别名是在jsp指令 taglib 中进行设置的prefix=”别名”,即<别名:set var="变量名" value="值"></别名:set>
  • 2.jstl在定义变量存在的哪里时候默认是page注意这里不是pageContext;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 简述
  • 0x01 基本用法
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档