Java Web入门之EL(表达式语言)的解析及使用

简介: Java Web入门之EL(表达式语言)的解析及使用

前言


EL(表达式语言)的特点是简介 增加程序的可读性和可维护性 其语法如下


${expression} expression是用于指定要输出的内容 可以是字符串 也可以是由EL运算符组成的表达式


一、EL的特点?


1:可以与JSTL结合使用 也可以与JavaScript语句结合使用


2:EL中会自动进行类型转换


3:EL不仅可以访问一般变量 还可以访问JavaBean中的属性以及嵌套属性和集合对象


4:在EL中可以执行算术运算 逻辑运算 关系运算 条件运算等操作


5:在EL中可以获得命名空间


6:在EL中进行除法运算时 如果0作为除数 则返回无穷大而不是错误


7:在EL中可以访问JSP的作用域


8:扩展函数可以与Java类的静态方法进行映射


二、禁用EL的三种方法


1:使用斜杠\符号  语法如下

\${expression}


2:使用page指令来禁用

<%@ page isELIgnored="布尔值"%>

3:在web.xml中配置<el-ignored>元素

<jsp:config>
  <jsp-property-group>
  <url-pattern>*.jsp</url-pattern>
 <el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>


三:通过EL访问数据


通过EL提供的[]  和 .运算符可以访问数据 通常情况下这两个运算符是等价的  可以相互替代


但是当访问数组或者列表的元素时最好用[]运算符 因为可以具体访问第几个元素


在EL中判断对象是否为空

${empty expression}
判断是否为非空
${not empty expression}


其余的算数 逻辑条件运算等等与JAVA区别不大  此处不再赘述


四:EL的隐含对象


1:页面上下文对象pageContext


用于访问JSP内置对象和servletContext 在获取到这些内置对象后 就可以获取其属性值 语法如下


等等内置对象都可以访问

${pageContext.request}
${pageContext.response}
${pageContext.out}
${pageContext.session}


2:访问作用域范围的隐含对象


有以下四个  pageScope ,requestScope, sessionScope, applicationScope。


应用这四个隐含对象指定所要查找的标识符的作用域后 系统将不再按照默认的顺序来查找相应的标识符


3:访问环境信息的隐含对象


1:param和paramValues对象


用于获取请求参数的值 当值有多个的时候用paramValues会方便一些


2:header和headerValues对象


用于获取HTTP请求的一个具体的header的值 在header拥有多个不同值得情况 就必须使用headerValues对象


3:initparam对象


用于获取web应用初始化参数得值


五:定义和使用EL函数


分为以下三步


1:编写一个java类 并在该类中编写公用得静态方法 用于实现自定义EL函数的具体功能


2:编写标签库描述文件 并对函数进行声明 该文件扩展名为.tld 被保存到Web应用的WEB-INF文件夹下


3:在JSP页面中引用标签库 并调用定义的EL函数 实现相应的功能


对应代码如下


java类

package.com.wgh;
public class StringDeal{
public static String shiftEnter(String str){
String newStr=str.replacedAll("\r\n","<br>");
newStr=newStr.replaceAll("","&nbsp;");
 return newStr;
}
}


标签库描述文件

<?xml version="1.0" encoding="utf-8"?>
 <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/SMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 web-jsptaglibrary_2_0.xsd"
version="2.0">
 <tlib-version>1.0</tlib-version>
<uri>/stringDeal</uri>
<function>
 <name>shiftEnter</name>
<function-class>com.wgh.StringDeal</function-class>
<function-signature>java.lang.String.shiftEnter(java.lang.String)
</function-signature)
</function>
</taglib>
相关文章
|
20天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
16天前
|
XML 数据可视化 前端开发
java正则表达式
java正则表达式
|
4天前
|
并行计算 Java 编译器
Java Lambda表达式简介
Java Lambda表达式简介
11 0
|
5天前
|
Java 开发者
探索 Java 的函数式接口和 Lambda 表达式
【4月更文挑战第19天】Java 中的函数式接口和 Lambda 表达式提供了简洁、灵活的编程方式。函数式接口有且仅有一个抽象方法,用于与 Lambda(一种匿名函数语法)配合,简化代码并增强可读性。Lambda 表达式的优点在于其简洁性和灵活性,常用于事件处理、过滤和排序等场景。使用时注意兼容性和变量作用域,它们能提高代码效率和可维护性。
|
8天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
9天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
12天前
|
Java
Java 14 强势登场:Switch 表达式的进化之路
Java 14 强势登场:Switch 表达式的进化之路
16 0
|
14天前
|
Java 开发者
Java中的Lambda表达式:简洁、灵活的编程利器
在现代软件开发中,编写简洁、高效的代码是至关重要的。Java中的Lambda表达式为开发者提供了一种简洁、灵活的编程方式,使得代码更具可读性和可维护性。本文将探讨Lambda表达式的基本概念、语法结构以及在实际项目中的应用,以帮助读者更好地理解和运用这一强大的编程工具。
6 0
|
16天前
|
存储 Java API
java8新特性 lambda表达式、Stream、Optional
java8新特性 lambda表达式、Stream、Optional
|
18天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
17 3