jsp的el表达式使用

EL表达式的使用
EL经常和JSTL一起使用,但是EL又可以单独使用,全称是Expression Language
在JSP中,经常会打印一些变量的内容,这些变量可以是从某个范围中变量,比如page、request、session、application范围。
例,打印str变量,下面三种方法都可以:
<%out.println(str)%>,这样会使JSP页面里面包含JAVA代码;
<%=str%>只能从本地获得,如果要从session里面获取必须是<%=session.getAttribute()%>;
${str}则可以从request、session、application范围中获得。

EL表达式的语法格式:
${标识符}(必须以“${”开始,以“}”结束 “标示符”具体表达式的内容)
通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。
如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是null)。

EL表达式的变量
EL存取变量时间的方法很简单,例如${username}。它的意思是取出某一范围中名称为username的变量。
属性范围在EL中的名称如表所示:
Page
pageScope

Request
requestScope

Session
sessionScope

Application
applicationScope

EL表达式的文字常量
一个EL表达式包含变量、文字常量、操作符。文字常量主要包括字符串、数字和布尔值、还有NULL,其中
字符串是由任何由单引号或双引号引起来的一串字符。
数字常量包括整型、浮点型,整型表示十进制、十六进制和八进制类型的值,浮点型与Java类似,可以包含任何正的或者负的浮点数。
布尔型包括true和false。
${true} ${10} ${10.5f} ${“hello”} ${null}

EL表达式的操作符
算术运算符主要有平时常用的“+”、“-”、“*”、“/或div”(***注意这里不是整除***)、“%或mod”
关系运算符主要有“==或eq”、“!=或ne”、“<或lt”、“>或gt”、“>=或ge”、“<=或le”
逻辑运算符主要有“&&”、“||”、“!”
验证运算符“empty”与条件运算符“?:”
empty作为前缀,用来检索一个值是否为null或者empty。如${empty user.name}用来判断user对象中的name的值是否为null
${条件 ? truevalue:falsevalue},如果条件为真,则表达式的值为truevalue,否则为falsevalue

(一)与范围有关的隐式对象
与作用范围有关的EL隐含对象包含有:pageScope、requestScope、sessionScope和applicationScope
它们可以读取使用JSP内置对象pageContext、request、session以及application的setAttribute()方法所设定的对象的数值
-----即getAttribute(String name),却不能取得其他相关信息。
例如,要取得session中储存的一个username属性的值,可以利用下面的方法:session.getAttribute("username")
在EL中则使用下面的方法:${sessionScope.username}
注意:如果没有设定使用EL内置对象的作用范围,则按照pageScope、requestScope、sessionScope和applicationScope的先后顺序读取属性值。
(二)与输入有关的隐式对象
与输入有关的隐含对象有两个,即param和paramValues,它们是EL中比较特别的隐含对象。例如,要取得用户的请求参数时,可以利用下列方法:
(1)request.getParameter(String name)
(2)request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据:
(1)${param.name}
(2)${paramValues.name}

(三)其他隐式对象
1、cookie
用来取得使用者的cookie值,例如在cookie中设定了username属性值,可以使用${cookie.username.value}来取得属性值。
2、header和headerValues
读取请求的头数据,使用header或headerValues内置对象,例如${header[“User-Agent”]},headerValues则用来取得所有的头信息,等价于调用request.getHeaders()方法。
3、initParam
initParam用来读取设置在web.xml中的参数值。例如${initParam.repeat},等价于:(String)application.getInitParameter(“repeat”); 或
servletContext.getInitParameter(“repeat”);
4、pageContext
pageContext用于取得其他有关用户要求或页面的详细信息
${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的URL,不包括参数字符串
${pageContext.request.contextPath} 服务的web application 的名称
${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 是否为新的
${pageContext.session.id} 取得session 的ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息

EL表达式的禁用
(一)在JSP 2.0中默认是启用EL表达式的,但如果在JSP页面中使用了与JSP EL标记符相冲突的其他技术,可以通过使用page指令的isELIgnored属性来忽略JSP EL的标识符。
a--<%@page isELIgnored="true|false"%>
(1)true:表示忽略对EL表达式进行计算。
(2)false:表示计算EL表达式。(默认)
b--还可以修改web.xml来决定当前的web应用不使用JSP EL。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
</web-app>

EL表达式的Functions 标签库(函数库):
需要添加一条指令
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

常用函数描述:
fn:contains(string, substring) 如果参数string中包含参数substring,返回true
fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true
fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true
fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置
fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true
fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串
fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串
fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回
fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回
fn:trim(string) 去除参数string 首尾的空格,并将其返回

时间: 2024-12-28 20:56:50

jsp的el表达式使用的相关文章

jsp中el表达式遇见的问题

概述: 之前在jsp页面展示中就遇见过几次这样的问题,今天来说一下我遇到的 org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/list.jsp at line 58 异常: 首先这个错误出现在访问controller层的list.action方法: 在输入http://localhost:8080/Smil/list.action 后就出现了如下的错误: 错误原因是:

JSP的EL表达式语言

以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaBean组件中的应用程序的数据.JSP EL允许创建表达式(a)算术和(b)逻辑.在一个JSP EL表达式中,可以使用整数.浮点型数字.字符串.内置的布尔常量值为true和false和null. 一.简单的语法 通常,当给JSP标签指定一个属性值时,只需使用一个字符串.例如: <jsp:setProp

JSP:使用EL表达式调用java函数

JSP:使用EL表达式调用java函数 使用一个例子 编写一个使用JSP表达式语言的JSP程序,输入一个数字,提交后输出该数字的九九乘法表. java代码实现打印9*9乘法表 Solution.java package method; public class Solution { public static String Mul99(int n){ String result=""; for(int i=1;i<=9;i++){ int temp=i*n; result=res

JSP、EL表达式的入门(要用)

2018-08-12   22:55:23 * JSP.EL表达式的入门(要用)    * Servlet/JSP  是两种动态的WEB资源的两种技术.   * 使用Servlet 生成HTML的页面    response.getWriter("<form action='' method='post'>");    response.getWriter("<input type='text' name='username'>");  *

JSP 中EL表达式用法

JSP 中EL表达式用法详解 EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${为起始.以}为结尾的.上述EL范例的意思是:从Session的范围中,取得 用户的性别.假若依照之前JSP Scriptlet的写法如下: User user =(User)session.getAttribute("user"); String sex =u

JSP页面EL表达式不解析

问题是这样:在搭建springMVC环境的时候,笔者写了一个简单的Controller如下: @Controller public class HelloController { @RequestMapping(value = "/hello.do", method = RequestMethod.GET) public String hello(Model model) { model.addAttribute("hello", "hello_Sprin

Jsp中EL表达式的使用

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka   1.什么是EL EL是JSP表达式语言,全称是ExpressionLanguage,使用EL的目的是简化在JSP中访问变量的方式,简单静态HTML与Java代码的耦合.下面来看看一个例子: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding=

jsp之EL表达式

EL表达式 1. 什么是EL表达式 jsp中的EL(express language)表达式技术:它仅仅是表达式. EL表达式的功能: 获取4个内置对象(域)中的数据,或自定义对象中的数据,或数组.集合容器中的数据.可以完成非常简单的运行,但它不能完成循环.复杂的判断等功能. EL表达式的书写格式:${ 表达式 } EL表达式的底层是我们前面学的jsp中的各种对象与方法的操作,只是做了一些优化:有一个很大的优化就是如果找不到数据的话不会返回null或者报异常,而是什么都不显示: 2. EL表达式

JSP中EL表达式的应用以及常用的方法

EL表达式      1.EL简介 1)语法结构        ${expression} 2)[]与.运算符      EL 提供.和[]两种运算符来存取数据.      当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []. 例如:          ${user.My-Name}应当改为${user["My-Name"] }      如果要动态取值时,就可以用[]来做,而.无法做到动态取值.例如:          ${sessionScop

【JSP】EL表达式语言

EL简介 EL语言原本是JSTL1.0中的技术(所以EL和JSTL配合如此亲密和默契也就是自然的了),但是从JSP2.0开始(JSTL1.1)就分离出来纳入了JSP的标准了.因此EL不需要任何jar包,他是集成到JSP技术本身中的了. 由于EL定位是 表达式语言,因此EL只能用于做简单的运算和取值,它是JSP无脚本化的一个利器,非常易学. EL的特点 1.所有的EL表达式的格式 ${   expression   },例如取的一个对象user的age属性 ${ user.name } 2.可以使