java学习之EL和JSTL

EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记

概念:Expression language 表达式语言
作用:替换和简化JSP页面中的java代码编写
语法:({} 设置忽略EL语法 (1):在page中实现isELIgnored=”true”忽略当前所有页面的el表达式 (2):/){}忽略当前这个el表达式

1.运算:基础的+-*/(加减乘(div)除)都可以实现
还有基础的逻辑运算&&(and )||(or)
比较运算符

<%@ page contenttype="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<% request.setattribute("name","zhangsan" ); session.setattribute("name","wangwu"); %>
${requestScope.name}
${sessionScope.name}
</%></body>
</html></%@>
<%@ page contenttype="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<% elcontent.user user="new" elcontent.user(); user.setname("zhangsan"); user.setage(12); user.setbirthday(new date()); request.setattribute("zhangsan",user); %>
${requestScope.zhangsan.name}
${requestScope.zhangsan.getbitStr()}
</%></body>
</html>
</%@>

3.获取list

&#x83B7;&#x53D6;&#x5BF9;&#x8C61;&#x3001;List&#x96C6;&#x5408;&#x3001;Map&#x96C6;&#x5408;&#x7684;&#x503C;

1. &#x5BF9;&#x8C61;&#xFF1A;${&#x57DF;&#x540D;&#x79F0;.&#x952E;&#x540D;.&#x5C5E;&#x6027;&#x540D;}
&#x672C;&#x8D28;&#x4E0A;&#x4F1A;&#x53BB;&#x8C03;&#x7528;&#x5BF9;&#x8C61;&#x7684;getter&#x65B9;&#x6CD5;

2. List&#x96C6;&#x5408;&#xFF1A;${&#x57DF;&#x540D;&#x79F0;.&#x952E;&#x540D;[&#x7D22;&#x5F15;]}

3. Map&#x96C6;&#x5408;&#xFF1A;

${&#x57DF;&#x540D;&#x79F0;.&#x952E;&#x540D;.key&#x540D;&#x79F0;}

${&#x57DF;&#x540D;&#x79F0;.&#x952E;&#x540D;["key&#x540D;&#x79F0;"]}

1.概念:JavaServer Pages tag LiBRARY JSP标准标签库
由Apache组织提供的开源的免费的jsp标签
2.作用简化和替换JSP上面的java代码
3.使用步骤
(1)导入相关jar包
(2)引入标签库

1.if &#x6807;&#x7B7E; &#xFF0C;test &#x5FC5;&#x987B;&#x5C5E;&#x6027;&#xFF0C;&#x63A5;&#x53D7;boolean&#x8868;&#x8FBE;&#x5F0F;

2. choose:&#x76F8;&#x5F53;&#x4E8E;java&#x4EE3;&#x7801;&#x7684;switch&#x8BED;&#x53E5;
    1. &#x4F7F;&#x7528;choose&#x6807;&#x7B7E;&#x58F0;&#x660E;               &#x76F8;&#x5F53;&#x4E8E;switch&#x58F0;&#x660E;
        2. &#x4F7F;&#x7528;when&#x6807;&#x7B7E;&#x505A;&#x5224;&#x65AD;                 &#x76F8;&#x5F53;&#x4E8E;case
        3. &#x4F7F;&#x7528;otherwise&#x6807;&#x7B7E;&#x505A;&#x5176;&#x4ED6;&#x60C5;&#x51B5;&#x7684;&#x58F0;&#x660E;        &#x76F8;&#x5F53;&#x4E8E;default

3. foreach:&#x76F8;&#x5F53;&#x4E8E;java&#x4EE3;&#x7801;&#x7684;for&#x8BED;&#x53E5;

中间遇到一个方法:一直报错期间发现了一个问题:attribute[test]不接受任何表达式
这是因为版本不兼容的问题

web.xml&#x4E2D;&#x7248;&#x672C;&#x53F7;&#x4E0D;&#x517C;&#x5BB9;&#x4EA7;&#x751F;&#x7684;&#x95EE;&#x9898;&#xFF1B;
&#x89E3;&#x51B3;&#x65B9;&#x6CD5;&#xFF1A;
<%@taglib prefix="&#x201C;c&#x201D;" uri="&#x201C;http://java.sun.com/jstl/core&#x201D;" %>&#x6539;&#x4E3A;
<%@taglib prefix="&#x201C;c&#x201D;" uri="&#x201C;http://java.sun.com/jstl/core_rt&#x201D;" %>

</%@taglib></%@taglib>

看一下demo和基础用法,

<%@ page contenttype="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

<html>
<head>
    <title>Title</title>

</head>

<body>
<% request.setattribute("number",5); %>

<c:if test="true"><h1>&#x6211;&#x662F;&#x771F;</h1></c:if>
<c:if test="${number % 2 !=0}">
    ${number}&#x4E3A;&#x57FA;&#x6570;
</c:if>
<c:choose>
    <c:when test="${number==1}">&#x661F;&#x671F;&#x4E00;</c:when>
    <c:when test="${number==2}">&#x661F;&#x671F;&#x4E8C;</c:when>
    <c:when test="${number==3}">&#x661F;&#x671F;&#x4E09;</c:when>
    <c:when test="${number==4}">&#x661F;&#x671F;&#x56DB;</c:when>
    <c:when test="${number==5}">&#x661F;&#x671F;&#x4E94;</c:when>
</c:choose>
<c:foreach begin="1" end="10" var="i" step="1" varstatus="s">
    <h3>begin &#x5F00;&#x59CB;&#x503C;</h3>
    <h3>end &#x7ED3;&#x675F;&#x503C;</h3>
    <h3>var &#x4E34;&#x65F6;&#x53D8;&#x91CF;</h3>
    <h3>step &#x6B65;&#x957F;</h3>
    <h3>varStatus:
        index:&#x5143;&#x7D20;&#x7684;&#x7D22;&#x5F15;
        count=&#x5FAA;&#x73AF;&#x7684;&#x6B21;&#x6570;&#x4ECE;1&#x5F00;&#x59CB;
    </h3>
    ${i}<br>${s.count}
</c:foreach>

</%></body>
</html>
</%@taglib></%@>

本篇学习文章还是比较短,内容比较少主要要记住的是后面EL和JSTL的连用达到简化JSP中java代码,让后面更好操作

Original: https://www.cnblogs.com/0x3e-time/p/16303714.html
Author: 不成大哥不改名
Title: java学习之EL和JSTL

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607970/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 聊一聊过滤器与拦截器

    过滤器 Filter 面试官:用过过滤器吧,介绍一下过滤器。John同学(心中窃喜):用过,我经常用它来净化水 😁… 面试官:今天的面试到此结束,回去等通知吧。John…

    Java 2023年6月9日
    063
  • springmvc项目中InitializingBean执行2次

    为了修复生产数据,需要执行一段一次性的代码。 鉴于是spring老项目,就想到了InitializingBean。 代码如下。服务启动后,log里发现出现2条”一次性任…

    Java 2023年5月30日
    0110
  • Java源码赏析(五)再识 String 类

    在 Java源码赏析(三)初识 String 类 中,我们已经大概理解了String的接口,接下来我们描述一下String的常用工具方法。 /** * 为&#x4E8…

    Java 2023年6月8日
    068
  • 深入MySQL(四):MySQL的SQL查询语句性能优化概述

    关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤。 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优…

    Java 2023年6月7日
    075
  • centos7安装docker

    一、安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。 注意:本文的命令使用的是 roo…

    Java 2023年6月16日
    079
  • 1、oracle 10g安装

    posted @2022-09-23 16:26 红酒人生 阅读(80 ) 评论() 编辑 Original: https://www.cnblogs.com/holly8/p/1…

    Java 2023年6月13日
    060
  • 字符串中实用的方法

    1、strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将…

    Java 2023年5月29日
    093
  • 自定义TREEVIEW UL无限极嵌套

    背景:做一个多级图片分类管理,当然要用到TreeView,在asp.net中已经提供了此服务器控件,参照效果,自定义一个简单可控性高的就当做练手吧! 效果:如图,小图标 折叠 展开…

    Java 2023年6月9日
    088
  • 自写一个生成ID的工具类

    平时项目中只要涉及表,那么一定能接触到众多各式各样的ID编号,博主整理一些常用的ID格式,整合一个ID生成工具类,供大家参考,如果有什么不足指出,烦请留言批评指正,尽量改正,感激不…

    Java 2023年6月7日
    097
  • Spring Cloud认知学习(三):声明式调用Feign的使用

    Feign 使用示例 1.导入依赖: 2.新建Feign Interface 3.创建服务消费者 4.测试 补充: 💡上一篇介绍微服务构建起来后,使用Ribbon来解决多个服务的负…

    Java 2023年5月30日
    087
  • 嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?

    前言 Spring Boot 自带的多环境配置 创建不同环境的配置文件 指定运行的环境 Maven 的多环境配置 创建多环境配置文件 定义激活的变量 pom 文件中定义 profi…

    Java 2023年6月14日
    077
  • 实现线程同步

    1 为何需要线程同步? 由于线程共享进程的资源,会产生 竞态条件,在某些情况下需要 协调指令执行的先后顺序,也就是实现 线程同步。 下面是一个常见的多线程累加程序,由于sum++并…

    Java 2023年5月30日
    046
  • 【Java中的线程】java.lang.Thread 类分析

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月9日
    093
  • [转]Nginx主动式后端服务器健康检查配置

    环境: SpringCloud微服务(eureka注册中心);nginx作为负载均衡; 场景: Nginx -> A服务当流量高峰期时,kill A服务A服务还没有挂掉,但是…

    Java 2023年5月30日
    065
  • tomcat加载启动过程

    流程图 posted @2022-08-19 17:43 默念x 阅读(8 ) 评论() 编辑 Original: https://www.cnblogs.com/monianxd…

    Java 2023年6月9日
    094
  • 为什么说Java8的Stream并行流底层使用了Fork/Join框架

    先说结论 Stream 是支持串行和并行执行这两种方式的 调用parallel方法即可 Stream.of(1, 2, 3, 4, 5).parallel() 先写一个Java8S…

    Java 2023年5月29日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球