当前位置 博文首页 > 文章内容

    el表达式,EL表达式语法

    作者:zyd1113wz 栏目:网站相关 时间:2021-03-11 10:57:01

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



         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 调用get的方法

         在 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关系运算符六个

         8、EL逻辑运算符三个

             

         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) }     

         原文链接:https://blog.csdn.net/qq_42402854/article/details/85249529