JavaWeb EL表达式

206 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第32天,点击查看活动详情

EL表达式

(1)为什么要用EL表达式

  • 在JSP中根据开发的需要嵌入了大量的java代码,增加了页面的复杂度,是页面不够简洁,不方便代码的开发和维护。 因此Sun公司制定了JSP标签(类似于html标签)来代替java代码。
  • Apache组织开发了一套标签,被sun公司整合后,成为标准标签库(jstl),jstl标签标签库可以配合EL表达式一起使用,减轻JSP页面的复杂度,代替Java代码,使JSP页面更加简洁,方便开发和维护。

(2)什么是EL表达式

EL表达式是一套简单的计算规则,用于给标签(jstl标准标签库)的属性赋值,也可以单独使用来计算和输出。

  • EL表达式单独用
  • EL+JSTL一起用

语法:

${………}
使用${}来替代<%  %>

(3)EL表达式的功能

1)输出简单的运算结果

     --算术运算   + - * / %
     --逻辑运算   && || !
     --关系运算   > >= < <= == !=
     --empty运算:判断对象是否为空

2)获取请求参数

请求的地址:

localhost:8080/项目名/url-pattern地址
?key1=value1&key2=value2…

根据key来获取value的值

${param.key}

根据key来获取多个对应的value的值

${paramValues.key[下标]}

3)从域对象中直接获取数据

域对象—JSP中的四大域对象—jsp中的隐式对象

  • pageContext
  • request
  • session
  • appliaction
共同的方法:setAttribute(name, value)
           getAttribute(name) ----> value

el表达式获取域对象中的数据的语法:

    ${name}               ---> value
    或者${xxScope.name}    --->value
        xx指定哪个域

4)获取JavaBean属性的值

什么是JavaBean?

是一种规范,符合该规范的类就是一个javabean类。 规范:

  • ①该类的属性/成员变量是private修饰的
  • ②这些属性有对应的get和set方法
  • ③该类中设有无参和有参构造方法
  • ④该类中设有toString方法

如果一个类是javabean类,在jsp中可以很方便的使用el表达式来获取类中的属性/成员变量。 语法:

${对象名.属性名}
<%@page pageEncoding="utf-8"%>
<html>
    <head>
         <title></title>
    </head>
  
    <body>
		<!-- 使用el表示获取TestServlet转发过来的数据,这些数据是放在request域对象中的,el表达式可以从域对象取值 -->
		${a}   ${requestScope.a}    ${stu}  ${requestScope.stu}  ${stu.id}
    </body>
</html>