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>
相关文章
|
10月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
10月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
819 1
|
10月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
1234 0
|
9月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
539 18
|
9月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
390 4
|
10月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
380 15
|
11月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
633 1
|
11月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
679 0
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
929 140
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1515 29

推荐镜像

更多
  • DNS