EL表达式语法「建议收藏」

EL表达式语法「建议收藏」EL(是ExpressionLanguage的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护。使用EL表达式的目的:从作用域中获取指定属性名的共享数据<%@pageisELIgnored=”true”%>表示是否禁用EL语言,TRUE表示禁止.。FALSE表示不禁。1、EL表达式的语…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

     EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护。

     使用EL表达式的目的:从作用域中获取指定属性名的共享数据

     <%@ page isELIgnored=”true”%>  表示是否禁用EL语言, TRUE 表示禁止.。FALSE 表示不禁。

1、EL表达式的语法:

  语法:${ EL表达式 }  EL运算式使用${
符合开头和}结尾的运算式  

       EL表达式不区分字母的大小写。可以访问对象的属性。使用EL表达式之前,必须将对象保存到作用域中。

  示列:${news.title}   或者 ${news[“title”]}     访问数组newsList[0] 。”.”操作符  与 “[]”操作符类似,可以用来访问对象的属性、数组、集合。           

2、[] 与 . 运算符区别:

      EL 提供 . 和 [] 两种运算符来存取数据。

      当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。

 例如:${user.My-Name}应当改为${user[“My-Name”] }         

      如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:${sessionScope.user[data]}中data 是一个变量 。         

3、EL 变量

      EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。

      注意:EL输出一个常量时,字符串要加双引号 ${“abc”},不然的话EL会默认把你认为的常量当做一个变量来处理,这时如果这个变量在4个声明范围不存在的话会输出空,如果存在则输出该变量的值。

4、自动转变类型

      EL 提供方便的自动转变类型,例如:${param.count + 20},假若传来count的值为10时,那么结果为30。

而 JSP 之中不能这样做,因为传来的值,它们的类型是String,所以当你接收之后,必须类型转换才能算数运算,例如:

        String str_count = request.getParameter(“count”);

        int count = Integer.parseInt(str_count);

        count = count + 20;

所以,注意不要和java的语法(当字符串和数字用“+”链接时会把数字转换为字符串)搞混淆啦。

5、EL 隐含对象

     JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个

隐含对象

类型

说明

PageContext

javax.servlet.ServletContext

表示此JSP的PageContext

PageScope

java.util.Map

取得Page范围的属性名称所对应的值

RequestScope

java.util.Map

取得Request范围的属性名称所对应的值

sessionScope

java.util.Map

取得Session范围的属性名称所对应的值

applicationScope

java.util.Map

取得Application范围的属性名称所对应的值

param

java.util.Map

如同ServletRequest.getParameter(String name)。回传String类型的值

paramValues

java.util.Map

如同ServletRequest.getParameterValues(String name)。回传String[]类型的值

header

java.util.Map

如同ServletRequest.getHeader(String name)。回传String类型的值

headerValues

java.util.Map

如同ServletRequest.getHeaders(String name)。回传String[]类型的值

cookie

java.util.Map

如同HttpServletRequest.getCookies()

initParam

java.util.Map

如同ServletContext.getInitParameter(String name)。回传String类型的值

  1)pageContext 调用get的方法

EL表达式语法「建议收藏」

2)在 EL中则可以使用param和paramValues两者来取得数据。

${param.name}

${paramValues.name}

这里param 的功能和request.getParameter(String name)相同,而paramValues和

request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值。
 

6、EL算术运算五个: 

+ 、- 、 * 、 /或div 、 %或mod(取余)

7、EL关系运算符六个

关系运算符

说明

范例

结果

== 或 eq

等于

${5==5}或${5eq5}

true

!= 或 ne

不等于

${5!=5}或${5ne5}

false

< 或 lt

小于

${3<5}或${3lt5}

true

> 或 gt

大于

${3>5}或{3gt5}

false

<= 或 le

小于等于

${3<=5}或${3le5}

true

>= 或 ge

大于等于

${3>=5}或${3ge5}

false

8、EL逻辑运算符三个

逻辑运算符

范例

结果

&&或and

交集${A && B}或${A and B}

true/false

||或or

并集${A || B}或${A or B}

true/false

!或not

非${! A }或${not A}

true/false

9、其他运算符三个

    1)Empty 运算符

         Empty 运算符主要用来判断值是否为空(NULL,空字符串,空集合),empty:为空时返回true,not empty:不为空时返回true

         ${empty sessionScope.user ? ‘未登录’ : ‘已登录’  }
         ${not empty sessionScope.user }    

    2)三目条件运算符: ${ A ? B : C}

    3)()运算符: ${ A*(B+C) }     

 

ends~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164758.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 程序员如何接私活「建议收藏」

    马无夜草不肥,人无外财不富!最近有很多程序员朋友问我如何接私活?接私活的方法有很多种,根据你的实力以及社会资源等因素选择合适自己的方法:1、熟人介绍,利用同事、同学、老顾客等熟人关系介绍订单,这个方法的好处就是,大家都有一定了解以及以及信任基础,很少存在骗单或者偷稿的行为,做的好可以成为长期稳定的合作伙伴,少去推广接单的痛苦与烦恼!2、网络平台接活,现在的网络接单平台有很多,选取一两个适合自己的网…

  • c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试[通俗易懂]

    c语言编程a4988驱动步进电机,A4988 步进电机驱动模块测试[通俗易懂]A4988控制逻辑简单,主要分为睡眠、正反转、复位、使能、细分等模式控制。(1)睡眠模式:Sleep管脚电平置0,进入睡眠模式,驱动器输出待机模式;Sleep管脚置1,驱动器处于正常工作状态;(2)正反转模式:正转模式DIR管脚置0或1,反转模式置1或0;(3)复位模式:复位模式下容易消耗能量,产生的冲击电流较大。直接RESET管脚置1,在不影响系统工作时RESET管脚置0复位。一旦驱动芯片复位,…

  • hive grouping函数_Merge函数

    hive grouping函数_Merge函数
    Grouping函数:
    可以接受一列,返回0或1。如果列值为空,则返回1,非空则返回0。它只能在rollup和或cube函数中使用,因为在统计中显示“全部”的那一项统计值时,那一项的标签通常是空的,这时grouping就非常有用,还可以在grouping的基础上进行decode,case等进行美化。
    SQL>selectgrouping(index_type)g_ind,grouping(status)g_st,index_type,status,count

    2022年10月31日
  • TCP拥塞控制的实现

    TCP拥塞控制的实现本文只是对TCP协议做个简要的介绍。TCP协议,即传输控制协议,与UDP协议同处于传输层,同样使用相同的网络层,但TCP提供了一种可靠的、面向连接的数据传输服务,它会在两个使用TCP的应用之间建立一个TCP连接,在该连接上进行数据的传输。TCP通过以下方式提供可靠性:1、应用程序被分割成TCP认为最合适发送的数据块。这点与UDP完全不同,应用程序产生的UDP数据报长度将保持不变,加上IP首部后,才会

  • iterator迭代器详解_c++迭代器iterator

    iterator迭代器详解_c++迭代器iterator迭代器 Iterator动机模式定义实例结构要点总结笔记动机在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式模式定义提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.实例结构要点总结迭代抽象

  • 【c#】控制台程序编写计时器「建议收藏」

    【c#】控制台程序编写计时器「建议收藏」【c#】控制台程序编写计时器

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号