
本文主要介绍Java中JSP页面技术中EL表达式的概念的使用以及语法的使用等,有需要的朋友可以参考
一个,概念
表达式语言(Expression Language)或EL表达式,称为EL,是Java中的一种特殊的通用编程语言,它是从JavaScript和XPath借来的. 主要功能是将Java Web应用程序嵌入Web页面(例如JSP)中,以访问页面范围和不同范围内的对象,获取对象属性的值,或执行简单的操作或判断操作. EL获得特定数据后,将自动转换数据类型.
主要功能:
1)获取数据
EL表达式主要用于替换JSP页面中的脚本表达式<%=%>,以检索Java对象并从各种类型的Web域中获取数据. (某个Web域中的对象,javabean的访问属性,访问列表集合,访问地图集合,访问数组)
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指定键的值。
三,请接线员
EL提供了两个运算符. 和[]访问数据:
. 访问Bean属性或映射条目,例如: $ {user.name}

[]可以访问集合或数组的元素,以及Bean的属性. 例如: $ {arr [0] .name}
异同:
相同: 可用于访问对象的属性
差异: 当要访问的属性名称包含某些特殊字符时,例如. 要么?或字母或数字以外的其他符号,必须使用[],例如user.my-name应该为{user [“ my-name”]}
四个运算符:
●有五个算术运算符: +,-,*,/或p,%或mod
●有六个关系运算符: ==或eq,!=或ne,<或lt,>或gt,<=或le,> =或ge
●共有三个逻辑运算符: &&或and,||或,或!是否
●还有其他三个运算符: 空运算符,条件运算符,()运算符

五个隐藏的对象
JSP EL支持下表中列出的隐藏对象:

您可以在表达式中使用这些对象,如变量.
按功能分组如下:
1)访问参数值:
param: 可以获得与单个请求参数名称相对应的值. 例如: $(param.name)等同于request.getParameter(名称).
paramValues: 可以根据参数名称获得相应的字符串数组. 例如: $ {paramvalues.name)等同于request.getParamterValues(name).
注意: param对象返回一个字符串,而paramValues对象返回一个字符串数组.
2)访问标头信息
header: 您可以在请求标头信息中获取相应的单个字符串标头值. 表达式header.name等同于request.getHeader(name). 如{header [“ user-agent”]}. 可以打印出用户代理标题.

headerValues: 将请求标头名称映射到值数组. 例如,$ {headerValues.name}等同于request.getHeaderValues(name).
注意: 标头对象返回一个值,headerValues返回一个字符串数组.
3)访问有关用户要求或页面的其他详细信息
pageContext:
pageContext.request |获取请求对象{pageContext.session} |获取会话对象
pageContext.request.queryString |获取请求参数字符串{pageContext.request.requestURL} |获取请求URL,但不包括请求参数字符串
pageContext.request.contextPath |服务的Web应用程序的名称{pageContext.request.method} |获取HTTP(GET,POST)的方法
pageContext.request.protocol |获取所使用的协议(HTTP / 1.1el表达式string转int,HTTP / 1.0){pageContext.request.remoteUser} |获取用户名
pageContext.request.remoteAddr |获取用户的IP地址{pageContext.session.new} |要确定会话是否是新会话,所谓的新会话意味着客户端刚刚生成了该会话,而客户端尚未生成用了
pageContext.session.id |获取会话ID {pageContext.servletContext.serverInfo} |获取主机的服务信息
4)访问范围不同的变量,例如Web上下文,会话el表达式string转int,请求,页面:
pageScope: 获取页面范围的值
如果您使用pageScope.objectName访问JSP中的整个页面对象,则也可以使用{pageScope.objectName.attributeName}访问该对象的属性.
requestScope: 获取请求范围的变量值
此对象允许访问所请求对象的属性. 如果使用requestScope.objectName访问JSP请求范围对象,则也可以使用{requestScope.objectName.attributeName}访问对象的属性.
sessionScope: 获取会话范围的变量值
此对象允许访问会话对象的属性. 例如: $ sessionScope.name}
applicationScope: 获取应用程序范围的变量值
此隐式对象允许访问应用程序范围的对象
5)访问cookie中的值
如果要在cookie中获取一个名称设置为用户名的值,则可以使用$ {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>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-236042-1.html
做事方式
一直找不到哪里生的虫