• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > JAVA JSP页面技术之EL表达式整理归纳总结

JAVA JSP页面技术之EL表达式整理归纳总结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了jsp el表达式,jsp el表达式判断,jsp中el表达式,jsp中使用el表达式,jsp引入el表达式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、概念

表达式语言(Expression Language),或称EL表达式,简称EL,是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath。主要作用是在Java Web应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。

主要作用:

1) 获取数据

EL表达式主要用于替换JSP页面中的脚本表达式<%= %>,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

2) 执行运算

利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

3) 获取web开发常用对象 EL

表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。

4) 调用Java方法

EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

注意:<%@ pageisELIgnored=”true” %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言

二、语法

以“${”开始,以“}”作为结束:

${EL表达式}

实例:

${ str } //输出字符串变量str的值

${ 1 + 2 } //输出1+2的结果

${ user.name} //输出user对象的name属性 访问对象user的getName()方法以得到name成员的值。

${user[“name”] } //同上

${ sessionScope[“user”].name } //同上

${list[0]} //访问list对象的第一项。

${map[“key”]} //访问map指定键的值。
</div>

三、取操作符

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

. 访问一个Bean属性或者一个映射条目 如:${ user.name}

[ ] 可以访问集合或者是数组的元素、也可以访问Bean的属性。 如:${ arr[0].name}

异同:

相同:可以用来访问对象的属性

差异:当要存取的属性名称中包含一些特殊字符,如 . 或 ? 或 - 等非字母或数字的符号,就一定要使用 [],如user.my-name应{user[“my-name”]}

四、运算符:

● 算术运算符有五个:+、-、*、/或div、%或mod

● 关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge

● 逻辑运算符有三个:&&或and、||或or、!或not

● 其它运算符有三个:Empty运算符、条件运算符、()运算符

五、隐含对象

JSP EL支持下表列出的隐含对象:

可以在表达式中使用像变量一样使用这些对象。

按功能分组如下:

1) 访问参数值:

param : 可取得对应单个请求参数名的值。如:$(param.name) 相当于 request.getParameter (name)。

paramValues: 可根据参数名取得对于的字符串数组。如:${paramvalues.name) 相当于 request.getParamterValues(name)。

注:param对象返回单一的字符串,而paramValues对象则返回一个字符串数组。

2) 访问头信息

header:可以取得请求头信息中,对应的单个字符串头值。表达式 header.name相当于request.getHeader(name)。如{header[“user-agent”]}。可打印出 user-agent 信息头。

headerValues:可将请求头名称映射到一个数值数组。如 ${headerValues.name} 相当于 request.getHeaderValues(name)。

注:header对象返回单一值,而headerValues则返回一个字符串数组。

3) 访问其他有关用户要求或页面的详细信息

pageContext:

pageContext.request|取得请求对象{pageContext.session} |取得session对象

pageContext.request.queryString|取得请求的参数字符串{pageContext.request.requestURL} |取得请求的URL,但不包括请求之参数字符串

pageContext.request.contextPath|服务的webapplication的名称{pageContext.request.method} |取得HTTP的方法(GET、POST)

pageContext.request.protocol|取得使用的协议(HTTP/1.1、HTTP/1.0){pageContext.request.remoteUser} |取得用户名称

pageContext.request.remoteAddr|取得用户的IP地址{pageContext.session.new} |判断session是否为新的,所谓新的session,表示刚由 server产生而client尚未使用 的

pageContext.session.id|取得session的ID{pageContext.servletContext.serverInfo}|取得主机端的服务信息

4)访问不同作用域的变量,如 Web 上下文、会话、请求、页面:

pageScope :取得页面范围的值

如用 pageScope.objectName访问一个JSP中页面范围的对象,还可以使用{pageScope.objectName.attributeName} 访问对象的属性。

requestScope:取得请求范围的变量值

该对象允许访问请求对象的属性。如用 requestScope.objectName访问一个JSP请求范围的对象,还可以使用{requestScope.objectName.attributeName} 访问对象的属性。

sessionScope:取得会话范围的变量值

该对象允许访问会话对象的属性。如:$sessionScope.name}

applicationScope:取得应用程序范围的变量值

该隐式对象允许访问应用程序范围的对象

5) 访问Cookie中的值

如要取得cookie中有一个设定名称为username的值,可以使用${cookie.username} 来取得它。

六、使用sun提供的标准 EL函数库

由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用。

这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库。

使用EL函数库

1) 导入 jstl jar包

2) 在相应的jsp页面添加引用

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*" %>
<!--导入需要使用taglib指令 --> 
 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>el function demo</title>
</head>
<body>
 
   <%
       String[] strs = {"a","b","c"};//定义一个字符数组
       List list = new ArrayList();//定义一个list集合
       list.add("a");//向集合中添加一个字符
       pageContext.setAttribute("arr", strs);//将字符数据以arr的名字保存在page域中
       pageContext.setAttribute("list", list);//将list集合以list的名字保存在page域中
    %>
 
${fn:length(arr) }<br/><!--3-->
${fn:length(list) }<br/><!--1-->
${fn:toLowerCase("Hello") }<br/> <!-- hello -->
${fn:toUpperCase("Hello") }<br/> <!-- HELLO -->
${fn:contains("abc", "a")}<br/><!-- true -->
${fn:containsIgnoreCase("abc", "Ab")}<br/><!-- true -->
${fn:contains(arr, "a")}<br/><!-- true -->
${fn:containsIgnoreCase(list, "A")}<br/><!-- true -->
${fn:endsWith("Hello.java", ".java")}<br/><!-- true -->
${fn:startsWith("Hello.java", "Hell")}<br/><!-- true -->
${fn:indexOf("Hello-World", "-")}<br/><!-- 5 -->
${fn:join(arr, ";")}<br/><!-- a;b;c -->
${fn:replace("Hello-World", "-", "+")}<br/><!-- Hello+World -->
${fn:join(fn:split("a;b;c;", ";"), "-")}<br/><!-- a-b-c -->
${fn:substring("0123456789", 6, 9)}<br/><!-- 678 -->
${fn:substring("0123456789", 5, -1)}<br/><!-- 56789 -->
${fn:substringAfter("Hello-World", "-")}<br/><!-- World -->
${fn:substringBefore("Hello-World", "-")}<br/><!-- Hello -->
${fn:trim("   a b c   ")}<br/><!-- a b c -->
${fn:escapeXml("<html></html>")}<br/> <!-- <html></html> --> 
</body>
</html>
</div>

函数库详细介绍

String toUpperCase(String input):把字符串参数转换成大写,并返回

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JAVA JSP页面技术之EL表达式整理归纳总结
  • JAVA JSP页面技术之EL表达式整理归纳总结

相关文章

  • 2017-05-28浅谈JSP与Servlet传值及对比(总结)
  • 2017-05-28java 中ThreadPoolExecutor原理分析
  • 2017-05-28spring MVC + bootstrap实现文件上传示例(带进度条)
  • 2017-05-28详解使用Spring Boot开发Web项目
  • 2017-05-28详解Spring AOP 拦截器的基本实现
  • 2017-05-28深入理解hibernate的三种状态
  • 2017-05-28Java中finalize()详解及用法
  • 2017-05-28MyBatis框架简介
  • 2017-05-28mybatis中的缓存问题解析
  • 2017-05-28Java连接Oracle数据库并查询

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Spring事务Transaction配置的五种注入方式详解
    • java 实现定时的方法及实例代码
    • Java使用join方法暂停当前线程
    • 详解PipedInputStream和PipedOutputStream_动力节点Java学院整理
    • SpringBoot用JdbcTemplates访问Mysql实例代码
    • 详解Spring MVC4 纯注解配置教程
    • Spring中BeanFactory解析bean详解
    • java 基本算法之归并排序实例代码
    • Java连接Oracle数据库并查询
    • 详解hibernate双向多对多关联映射XML与注解版

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有