EL表达式

EL表达式
EL表达式

EL:

简介:

(Expression Language.)

作用:EL表达式存取变量数据。方便使用。

语法结构: ${ ……. }

EL运算符:

.与[]

EL提供了.和[] 两个运算符存取数据

假设session变量为user的javaBean,有一个name属性,取值为${https://www.360docs.net/doc/4f7754467.html,} 或者${https://www.360docs.net/doc/4f7754467.html,er[“name”]}

算术运算符

有五个:+、-、*或$、/或dive、%或mod

${2+3}

${2/3}或${2 div 3}

${2%3}或${2 mod 3}

关系运算符

有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge ${5==5} ${5 eq 5}

${5 != 5} ${5 ne 5}

逻辑运算符

有三个:&&或and、||或or、!或not

${A &&B} ${A and B}

${A || B}

${!A} ${not A}

其它运算符

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

${empty https://www.360docs.net/doc/4f7754467.html,}

${3+9 }

${5==5 }

${empty a }

EL隐式对象:

1、与范围有关的隐式对象。

●pageScope使用范围:当前页面

●requestScope使用范围:当前请求

●sessionScope使用范围:当前会话

●applicationScope使用范围:服务器启动到结束

例子:

<%

pageContext.setAttribute("key","b");

request.setAttribute("key","c");

session.setAttribute("key","d");

application.setAttribute("key","e");

%>

${key }

${requestScope.key }

${sessionScope.key }

${applicationScope.key }

2、与输入有关的隐式对象。

●param:请求中传递的是单个值

●paramValues :请求中传递的是数组或多个值${https://www.360docs.net/doc/4f7754467.html,ername }

可在url地址中用问号赋值然后获取。

注:

request.getParameter(String name)

request.getParameterValues(String name)

等同于:

${https://www.360docs.net/doc/4f7754467.html,}

${https://www.360docs.net/doc/4f7754467.html,}

实例一:

1、先建两个bean类:

Dept实体类:

public class Dept {

private int deptId;

private String deptName;

public int getDeptId() {

return deptId;

}

public void setDeptId(int deptId) { this.deptId = deptId;

}

public String getDeptName() {

return deptName;

}

public void setDeptName(String deptName) { this.deptName = deptName;

}

}

User实体类:

public class User {

private int id;

private String name;

private Dept dept;

public Dept getDept() {

return dept;

}

public void setDept(Dept dept) {

this.dept = dept;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/4f7754467.html, = name;

}

}

2、建个el.jsp:

<%

User u = new User();

u.setId(1);

u.setName("zhangsan");

Dept d = new Dept();

d.setDeptId(101);

d.setDeptName("计算机");

u.setDept(d);

request.setAttribute("user",u);

%>

${https://www.360docs.net/doc/4f7754467.html, }

${user.dept.deptName }

上面例子虽然能说明传值、取值,但不要那样写,尤其不能讲java代码写在jsp页面中!!实例二:

1、在index.jsp中:

首页显示用户

2、还是用上面的两个bean类。

3、写dao层:UserDao (这里只是模拟从数据库查信息)

public class UserDao {

public User findUser(){

User u = new User();

u.setId(1);

u.setName("zhangsan");

Dept d = new Dept();

d.setDeptId(101);

d.setDeptName("计算机");

u.setDept(d);

return u;

}

}

4、建立一个servlet:

public class ShowUserServlet extends HttpServlet { public void destroy() {

}

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

UserDao dao = new UserDao();

User user = dao.findUser();

request.setAttribute("user", user);//显示页面用${user.id }等取值

RequestDispatcher rd =

request.getRequestDispatcher("showUser.jsp");

rd.forward(request, response);

}

public void init() throws ServletException {

}

}

5、写显示页面showUser.jsp:

idnamedeptname
${user.id }${https://www.360docs.net/doc/4f7754467.html, }${us er.dept.deptName }

EL表达式的隐式对象

EL表达式的隐式对象 在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(page、request、session、application)中顺序搜索(使用pageContext.findAttribute方法)。 EL总共有如下隐式对象: 而这里,EL和JSP一样拥有pageContext对象,通过在EL中使用pageContext对象,能获取JSP中其它几个隐式对象,然后再获得这些对象中的属性。例如获取当前web工程的名称的经典EL表达式: ${ pageContext.request.contextPath },就是由pageContext先获取request对象(因为在JSP的API中,我们可以看到pageContext有getRequest方法),获取到request对象后,因为request中含有getContextPath方法,因此我们还可以获得request对象中contextPath属性的值。 pageScope、requestScope、sessionScope、applicationScope这四个EL隐式对象分别代表了各自域中的Map对象(每个域以关键字来保存数据或对象,肯定是使用Map集合),这Map对象保存了存在这些域中的键值对。通过EL表达式和这些隐式对象,我们可以直接从指定的域中获取存储的数据。 例1: 1<%

2User u = new User(); 3u.setUsername("fjdingsd"); 4session.setAttribute("user", u); 5%> 6 7欢迎您:${https://www.360docs.net/doc/4f7754467.html,ername} 在浏览器中观察: 对于用户登录这样的案例来说,我们检查用户是否登录肯定只需要从session域中查询,这样使用EL表达式的sessionScope隐式对象就足够了。 param隐式对象:表示所有请求参数的Map集合对象。例如表单提交,那么在请求参数中的数据就以键值对存储在param对象所代表的Map集合中,下面的例子我以get方式来替代post方式来模拟表单请求参数: 例2: ${https://www.360docs.net/doc/4f7754467.html,ername} 在地址栏上添加URL参数,可以看到: 使用param隐式对象同样也能作为数据回显功能,在以前JSP页面提交的表单如果想做出数据回显功能,必须创建一个form的bean对象,当表单校验失败时,重新将这个bean对象通过转发(forward)传回JSP页面再取出。而使用param 对象,不需要新建form的bean对象,只需要在表单校验失败时转发回表单所在的JSP页面,通过param对象就可以从请求中取出之前的表单数据。 例3:表单验证失败的数据回显demo 在JSP页面beantag.jsp中:

EL表达式

EL表达式总结 EL表达式总是用大括号括起,而且前面有一个美元符($)前缀:${expression}。 表示式中第一个命名变量要么式一个隐式对象,要么是某个作用域(页面作用域、请求作用域、会话作用域或应用作用域)中的一个属性。 点号操作符允许你使用一个Map键或一个bean性质名来访问值,例如,使用${foo.bar}可以得到bar的值,在此,bar是Map foo的Map键名,或者是bean foo的一个性质。放在点号操作符右边的东西必须遵循Java的标识符命名规则!(换句话说,必须以一个字母、下划线或美元符开头,第一个字符后面可以有数字,但不能有其他字符)。 点号右边只能放合法的Java标识符。例如,${foo.1}键就不可以。 []操作符比点号功能更强大,因为利用[]可以访问数组和List,可以把包含命名变量的表达式放在中括号里,而且可以做任意层次的嵌套,只要你受得了。 例如,如果musicList是一个ArrayList,可以用${musicList[0]}或${musicList[“0”]}来访问列表的第一个值。EL并不关心列表索引加不加引号。 如果中括号里的内容没有用引号引起来,容器就会进行计算。如果确实放在引号里,而且不是一个数组或List的索引,容器就会把它看作是性质或键的直接命名。 除了一个EL隐式对象(PageContext)外,其他EL隐式对象都是Map。从这些隐式对象可以得到任意4个作用域中的属性、请求参数值、首部值、 cookie值和上下文初始化参数。非映射的隐式对象是pageContext,它是PageContext对象的一个引用。 不要把隐式EL作用域对象(属性的Map)与属性所绑定的对象混为一谈。换句话说,不要把requestScope隐式对象与具体的JSP隐式对象 request混淆。访问请求对象只有一条路,这就是通过pageContext隐式对象来访问(不过,想从请求得到的一些东西通过其他EL隐式对象也可以得到,包括param/paramValues、header/headerValues和cookie)。 EL允许你调用一个普通Java类中的公共静态方法。函数名不一定与具体的方法名相匹配!例如,${foo:roolIt()}并不意味着包含函数的类中肯定有一个名为roolIt()的方法。 使用一个TLD将函数名(例如roolIt())映射到一个具体的静态方法。使用元素声明一个函数,包括函数的(roolIt())、完全限定类以及,其中包括返回类型以及方法名和参数表。 要在JSP中使用函数,必须使用taglib指令声明一个命名空间。在taglib指令中放一个prefix属性,告诉容器你要的函数在哪个TLD里能找到。例如:<%@ taglib prefix="mine" uri="/WEB-INF/foo.tld" %> 基本语法

EL表达式与JSTL

EL和JSTL 主要内容 ?EL表达式 ?JSTL标签库

1.EL表达式 EL表达式又称为表达式语言(Expression Language),它是JSP中一个很重要的组成部分。在JSP页面中使用EL表达式,可以简化对变量和对象的访问。 EL表达式的语法非常的简单,所有的EL表达式都是以“${”开始,以“}”结束,比如${name}。EL表达式会将表达式中的结果在页面上输出,就像使用JSP的表达式结构或使用out内置对象进行输出一样。 EL表达式对运算符支持 使用EL表达式进行算术运算,在EL表达式中支持+、-、*、/、%运算,示例如下: 代码演示:EL表达式算术运算 <%@ page language="java" pageEncoding="UTF-8"%> EL表达式算术运算 12 + 15 = ${12+15}
12 * 15 = ${12*15}
12 - 15 = ${12-15}
12 / 15 = ${12/15}
12 % 15 = ${12%15}

图1 EL表达式算术运算结果 在EL表达式中还可以支持关系运算符操作,示例如下: 代码演示:EL表达式关系运算符 12==15 ${12==15}
12<15 ${12<15}
12>15 ${12>15}
12<=15 ${12<=15}
12>=15 ${12>=15}
12!=15 ${12!=15} EL表达式除了支持普通的关系运算符外,还可以使用字符来表示关系运算符,下面的写法和上面使用普通关系运算符表示的顺序一一对应: 代码演示:EL表达式关系运算符 12==15 ${12 eq 15}
12<15 ${12 lt 15}
12>15 ${12 gt 15}
12<=15 ${12 le 15}
12>=15 ${12 ge 15}
12!=15 ${12 ne 15}

EL表达式

EL: 简介: (Expression Language.) 作用:EL表达式存取变量数据。方便使用。 语法结构: ${ ……. } EL运算符: .与[] EL提供了.和[] 两个运算符存取数据 假设session变量为user的javaBean,有一个name属性,取值为${https://www.360docs.net/doc/4f7754467.html,} 或者${https://www.360docs.net/doc/4f7754467.html,er[“name”]} 算术运算符 有五个:+、-、*或$、/或dive、%或mod ${2+3} ${2/3}或${2 div 3} ${2%3}或${2 mod 3} 关系运算符 有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge ${5==5} ${5 eq 5} ${5 != 5} ${5 ne 5} 逻辑运算符 有三个:&&或and、||或or、!或not

${A &&B} ${A and B} ${A || B} ${!A} ${not A} 其它运算符 有三个:Empty运算符、条件运算符、()运算符 ${empty https://www.360docs.net/doc/4f7754467.html,} ${3+9 } ${5==5 } ${empty a } EL隐式对象: 1、与范围有关的隐式对象。 ●pageScope使用范围:当前页面 ●requestScope使用范围:当前请求 ●sessionScope使用范围:当前会话 ●applicationScope使用范围:服务器启动到结束 例子: <% pageContext.setAttribute("key","b"); request.setAttribute("key","c"); session.setAttribute("key","d"); application.setAttribute("key","e"); %> ${key } ${requestScope.key } ${sessionScope.key }

EL表达式时间,货币格式化

EL表达式:时间货币格式化文章分类:Java编程Java代码首先jstl既然可以国际化那么必然可以自动根据local设置来选择资源文件。2fmt:setLocal 可以设置Local从而改变输出格式。3fmt:message 可以输出资源文件里的key对应的value。 4 这地方有点意思首先我在工程的WEB-INF/classes下面建立了一个资源文件resources.properties。然后在jsp页面里使用此资源文件。Nitrox插件提示找不到resources.properties的警告. 使用也无法显示. 原因:工程没有指定input output的对应关系.这样classes并不是classpath路径. 解决办法: 设置input 为/WEB-INF/src output /WEB-INF/classes 然后把resources.properties放在/WEB-INF/src/下面。这样在 /WEB-INF/classes/下面自动生成了一个resources.properties.这就是我想要的。好了在试一次资源文件找到了。也能正常显示了。5难道必须和搭配使用才行吗实在觉得有点罗嗦。没办法jstl就是这样用的。6jstl使用资源文件有个大的问题因为fmt:bundle basenamexxx 指定死了资源文件了那么如果local不同了岂不是还从这个资源文件里取数据吗这样美国的网页浏览仍旧显示日文就不合理了. 我理解错了并非指定资 源文件就是他而是指资源文件的基本名字例如如果是英国的local那么自动查找xxx_en.properties如果是中国的local那么自动去查找xxx_zh.properties. 和struts是一样的. 资源绑定。除了以前提到过的在web.xml中声明以外还可以利用此标签。

第十四章 CEL表达式语言

第十四章 14: CFX 表达式语言(CEL) CFX Expression Language (CEL) is an interpreted, declarative language that has been developed to enable CFX users to enhance their simulations without recourse to writing and linking separate external Fortran routines. You can use CEL expressions anywhere a value is required for input in ANSYS CFX. CEL can be used to: ?Define material properties that depend on other variables. ?Specify complex boundary conditions. ?Add terms to the solved equations. You can also monitor the value of an expression during the solution using monitor points. Important: There is some CEL that works elsewhere in ANSYS CFX, but not in CFD-Post. Any expression created in CFX-Pre and used as a Design Exploration output parameter could potentially cause fatal errors during the Design Exploration run, so you should create all expressions for Design Exploration output parameters in CFD-Post. 14.1.1. Values and Expressions CEL can be used to generate both values and expressions. Values are dimensional (that is, with units) or dimensionless constants. The simplest type of definition is the dimensionless value, for example: b = 3.743 You can also specify a value with units, for example: g = 9.81 [m s^-2] The dimensions of the quantities of interest for CFD calculations can be written in terms of mass, length, time, temperature and angle. The concept of units is fundamental to the behavior of values and expressions. Values can be used directly, or they can be used as part of an expression. For example, you can use an expression to add two values together: = + In this example, you may want to predefine and , but this is not required. However, in order to add two quantities together, they must have the same dimension; that is, it is meaningful to add a quantity in inches to one expressed in meters, but it is not meaningful to add one expressed in kilograms to one in square feet. Expressions can also be functions of other (predefined) expressions: = +

el表达式的基本语法

·el表达式的基本语法 ${el表达式} 1) 第一种:访问bean的属性 a、${https://www.360docs.net/doc/4f7754467.html,} jsp引擎会依次从pageContext、request、session、application查找绑定名为"user" 的对象,如果找到了就不再向下查找,否则,继续向下查找。找到后。调用该对象的getName()方法,并输出 其值;找不到,则输出""(空)。 b、${user["name"]},效果相同 "name"表示字符串 c、或者也可以使用${user[propname]},注意不带引号表示变量 d、此外[]里面还可以以0 1这样的数字下标,作用是输出数组里面的元素值。 2)第二种:获取请求参数值 a、${https://www.360docs.net/doc/4f7754467.html,ername} 等价于request.getAttribute("username"); b、${paramValues.interest} 等价于request.getAttributeValues("interest"); 3)第四种:计算一个表达式,将结果作为标签的属性值或者直接输出。 a、算术运算+ -* % / 但是要注意的是+号不能连接字符串 b、关系运算== != < > >= <= 可以使用对应的"eq" "nq" "lt" "gt" "le" "ge" c、逻辑运算 && || ! 可以使用and or not d、empty运算 判断一个字符串是否为空,集合内容是否为空,以及绑定的对象是否存在 ·5核心标签的使用 1)使用步骤 需要将jstl标准标签库相关的jar文件copy到WEB-INF 的lib目录下 jstl.jar java stantard taglib stantard.jar 2)在件商品文件当中,使用taglib指令导入标签。 3)使用标签 a、 test属性:当值为true的时候,执行标签体的内容,为false则不执行、 var属性:指定一个绑定名 scope属性:指定一个绑定范围 var属性和scope属性用于将test的结果绑定到指定的对象 (pageContext,request,session,application)上。 b、 用于分支,当某个条件满足,执行某一个分支。每个分支条件用when标签表示。 可出现多次,当值为true的时候执行标签体内容 只出现一次,当其他分支都不满足条件时,则执行该标签体内容

J2EE JSP EL表达式应用技术及示例

1.1J2EE JSP EL表达式教学示例 1、EL表达式语言 (1)主要的优点 使用标签(Tag)和EL表达式语言的主要目的就是为了能够避免在JSP页面中出现过多的<% %>的语句,使页面与后台的Java代码相互分离。应用表达式语言主要有以下几大好处: 1)避免直接在页面中应用(MyClassType) request.getAttribute()和 myEntityBean.getMyProperty()之类的脚本语句,从而能够使页面更加简洁; 2)支持运算符(如+-*/),比普通的标签具有更高的应用自由度和更强的功能; 3)简单明了地表达程序代码的逻辑,比直接使用脚本代码更可读与更便于维护。 (2)JSP2.0的一个主要的组件为支持EL的表达式语言 因此,EL表达式语言可以直接在JSP页面中应用,而不需要引入任何其它的系统库包文件。 2、EL语言是JSTL输出(输入)一个JA V A表达式的表示形式。 在JSTL中,EL语言只能在属性值中使用;EL语言只能通过建立表达式${exp1}来进行调用。在属性值中使用表达式有三种方式。 (1)value属性包含一个表达式 在这种情况下,表达式值被计算出来并根据类型转换规则赋值给value属性。上面的${requestScope.errorText}就是一个EL,它相当于JSP语句<%=request.getAttribute("errorText")%>。 (2)value属性包含一个或多个属性,这些属性被文本分割或围绕 < c:out value="some${expr}${expr}text${expr}"/> 在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给value属性 (3)value属性仅仅包含文本 < c:out value="sometext"/> 在这种情况下,字符串型属性value将根据类型转换规则转换为标签所希望的类型。

JSP中的EL表达式介绍

JSP 中的 EL 表达式介绍
一、JSP EL 语言定义
EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功 能。 脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码 的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。 JSP 2.0 将 EL 表达式添加为一种脚本编制元素。
二、JSP EL 简介 1、语法结构 ${expression} 2、[ ]与.运算符 EL 提供“.“和“[ ]“两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数 字的符号,就一定要使用“[ ]“。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。 例如: ${https://www.360docs.net/doc/4f7754467.html,er[data]}中 data 是一个变量 3、变量 EL 存取变量数据的方法很简单,例如:${username}。它的意思是 取出某一范围中名称为 username 的变量。

因为我们并没有指定哪一个范围的 username,所以它会依序从 Pa ge、Request、Session、Application 范围查找。 假如途中找到 username,就直接回传,不再继续找下去,但是假 如全部的范围都没有找到时,就回传 null。 属性范围在 EL 中的名称 Page Request Session Application PageScope RequestScope SessionScope ApplicationScope
二、JSP EL 中的有效表达式 有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。 我们将分别了解这些有效表达式中的每一种: 1、文字 JSP 表达式语言定义可在表达式中使用的以下文字:
文字 Boolean true 和 false
文字的值
Integer
与 Java 类似。可以包含任何正数或负数,例如 24、-45、 567 与 Java 类似。可以包含任何正的或负的浮点数,例如 -1.8E-45、4.567
Floating Point

在JSP2.0中使用EL表达式语言

在JSP2.0中使用EL表达式语言 EL(表达式语言)是一种数据访问语言,可以方便地访问和处理应用程序数据,而无需使用scriptlet或者请求时(request-time)表达式的值。(不需要使用< % 和%>来获得数据,EL使JSP页面编写人员摆脱了java语言,使用户即使不懂JAVA也可以轻松编写JSP程序. 在JSP2.0之前,网页作者只能使用表达式< %= aName %>访问系统的值,比如: 而访问JavaBeans属性,可以使用:${aCustomer.address.country} Tomcat对EL扩展表达式的支持和配置: tomcat5.0默认支持EL,同时用户可以在Web.xml文件中对整个web应用程序进行设置或者在每个页面中单独设置page指令来控制TOMCAT是否对EL的支持。 ---------------------------- JSP2.0中EL扩展表达式语言的设置 有了JSP2.0,就可以使用EL扩展表达式了。对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true;

JSP2.0中表达式运算符号: EL表达式运算符包括算数运算符(+-*/),关系运算符(>< )和逻辑运算符(&& || !),还有empty 判断值是否为空,同时EL能够对字符串,数字等各种类型的数据之间的自动转换,使EL 兼容了JAVASCRIPT等脚本语言的优点,摆脱了JAVA语言严格的数据类型限制,使用起来简单,只需要几分钟就可以轻松掌握(对于不懂java的网页编写人员实在是一件好事)。 ---------------------------- JSP2.0中各种运算符运算实例 以下是EL运算符列表,其中empty可以检查某个值是否为空 运算符说明 + 加 - 减 * 乘 /或div 除 % 或mod 模(求余)

EL表达式教程

EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构: ${https://www.360docs.net/doc/4f7754467.html,er.sex} 所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session 的范围中,取得 用户的性别。假若依照之前JSP Scriptlet的写法如下: User user = (User)session.getAttribute("user"); String sex = user.getSex( ); 两者相比较之下,可以发现EL 的语法比传统JSP Scriptlet 更为方便、简洁。 一.与 [ ] 运算符 EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的: ${https://www.360docs.net/doc/4f7754467.html,er.sex}等于${https://www.360docs.net/doc/4f7754467.html,er["sex"]} . 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price} 回传结果为shoppingCart中第一项物品的价格。 不过,以下两种情况,两者会有差异: (1) 当要存取的属性名称中包含一些特殊字符,如. 或–等并非字母或数字的符号,就一定要使用 [ ],例如:${user.My-Name } 上述是不正确的方式,应当改为:${user["My-Name"] } (2) 我们来考虑下列情况: ${https://www.360docs.net/doc/4f7754467.html,er[data]} 此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${https://www.360docs.net/doc/4f7754467.html,er.sex}; 假若data 的值为"name"时,它就等于${https://www.360docs.net/doc/4f7754467.html,}。因此,如果要动态取值时,就可以用上述的方法来做,但. 无法做到动态取值。 二.EL 变量 EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。

EL表达式、语法及运算

EL表达式 一、EL表达式的概念 EL表达式是为了便于获取数据而定义的一种语言,JSP 2.0之后才成为一种标准。下面的示例是一个简单的EL表达式: <%@ page contentType="text/html; charset=UTF-8"%> ${stuno + 1}
二、EL表达式的基本语法 EL表达式的出现让Web的显示层发生了大的变革,EL表达式用于获取数据,在JSP 2.0之后成为一种标准,是由JSP 标准标签库专家组和JSP 2.0 专家组开发。 EL表达式的语法格式:${标识符}(必须以“${”开始,以“}”结束“标示符”具体表达式的内容) 在JSP页面中使用的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是null)。 三、语法结构 1、JSP EL用于以下情形 静态文本 标准标签和自定义标签(可以作为元素的值,也可以在自定义或者标准动作元素的内容中使用) EL不能在脚本元素中使用 2、[]与.运算符

EL提供(.)和([])两种运算符来存取数据,即使用点运算符(.)和方括号运算符([])。 点运算符和方括号运算符可以实现某种程度的互换,如${https://www.360docs.net/doc/4f7754467.html,}等价于${student [“name”]}。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号时,就一定要使用[]。例如${https://www.360docs.net/doc/4f7754467.html, }应当改为${student[“name”] }。 如果要动态取值,就可以用[]来做,而.无法做到动态取值。例如${sessionScope.student[data]}中data 是一个变量。 3、变量 EL存取变量时间的方法很简单,例如${username}。它的意思是取出某一范围中名称为username 的变量。 属性范围在EL中的名称如表所示: 4、文字常量 一个EL表达式包含变量、文字常量、操作符。文字常量主要包括字符串、数字和布尔值、还有NULL,其中 字符串是由任何由单引号或双引号引起来的一串字符。 数字常量包括整型、浮点型,整型表示十进制、十六进制和八进制类型的值,浮点型与Java类似,可以包含任何正的或者负的浮点数。 布尔型包括true和false。 ${true} ${10} ${10.5f} ${“hello”} ${null} 5、操作符 EL表达式的操作符主要有

EL表达式常用标签

EL表达式和常用标签 1.el表达式的作用,什么时候使用el表达式 El表达式是为了简化jsp页面中的java代码,当在jsp页面中需要使用java代码的时候,可以使用el表达式来替换java代码 2.语法规则${ } 3.El表达式在request,session,application中的自动匹配范围最小的那一个 例如: request.setAttribute("name","mzl"); session.setAttribute("name","liu"); application.setAttribute("name","huyahui"); El: 获得attribute里面的值${name} 4.获取请求头的信息 获得全部请求信息${header }
获得cookie ${header.cookie }
获得cookie的第二种方式${header['cookie'] } 5.获取请求参数 6.获取作用于的数据 request.setAttribute("name","mzl"); session.setAttribute("name","liu"); application.setAttribute("name","huyahui"); El 获得request里面的值${https://www.360docs.net/doc/4f7754467.html,}
获得session里面的值${https://www.360docs.net/doc/4f7754467.html,}
获得application里面的值${https://www.360docs.net/doc/4f7754467.html,}

7.获取列表的数据 ArrayList list = new ArrayList(); list.add("zcxv"); list.add("adf"); list.add("asdf"); request.setAttribute("list",list); Map map = new HashMap(); map.put("01","adf"); map.put("02","zcv"); request.setAttribute("map",map); El 下标的方式进行访问集合${list[0]}
${list[1]}
${list[2]}
访问map里面的值:${map['01'] }
${map['02'] }
8.获取pojo对象的值 User user = new User(01,"123"); request.setAttribute("user",user); El 访问pojo里面的值
${user.id }
${https://www.360docs.net/doc/4f7754467.html, } 9.El表达式能够进行简单的计算 10.Jsp常用的标签库 动态循环输出数据到页面 User user = null; ArrayList list = new ArrayList(); for(int i=1;i<10;i++){ user = new User(i, "user" + i); list.add(user); } request.setAttribute("users",list);

EL表达式的介绍

EL表达式的简单介绍 一、JSP EL语言定义 E L(Expression Language)目的:为了使JSP写起来更加简单。 表达式语言的灵感来自于ECMAScript 和XPath 表达式语言,它提供了在JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到Java 类中静态方法的可扩展函数以及一组隐式对象。 EL 提供了在JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在JSP 文件中嵌入Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将EL 表达式添加为一种脚本编制元素。 二、JSP EL简介 1、语法结构 ${expression} 2、[ ]与.运算符 EL 提供“.“和“[ ]“两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:${https://www.360docs.net/doc/4f7754467.html,er[data]}中data 是一个变量 3、变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 二、JSP EL 中的有效表达式 有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一种: 1、文字 JSP 表达式语言定义可在表达式中使用的以下文字: 文字文字的值 Boolean true 和false

Java EL表达式

Java EL表达式 E L(Expression Language)目的:为了使JSP写起来更加简单。 表达式语言的灵感来自于ECMAScript 和XPath 表达式语言,它提供了在JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到Java 类中静态方法的可扩展函数以及一组隐式对象。 EL 提供了在JSP脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在JSP 文件中嵌入Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将EL 表达式添加为一种脚本编制元素。 二、JSP EL简介 1、语法结构 ${expression} 2、[ ]与.运算符 EL 提供“.“和“[ ]“两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:${https://www.360docs.net/doc/4f7754467.html,er[data]}中data 是一个变量 3、变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 二、JSP EL 中的有效表达式 有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一种: 1、文字 JSP 表达式语言定义可在表达式中使用的以下文字: 文字文字的值 Boolean true 和false Integer 与Java 类似。可以包含任何正数或负数,例如24、-45、567 Floating Point 与Java 类似。可以包含任何正的或负的浮点数,例如-1.8E-45、4.567

实验四:EL表达式和JSTL标签库的使用

实验四:EL表达式和JSTL标签库的使用 一、实验的目的 (1)掌握EL表达式的使用。 (2)掌握JSTL标签库的使用。 二、实验内容与要求 (1)学习EL表达式的原理和使用。 (2)了解JSTL标签库的原理及使用。 (3)EL实例的调试。 (4)JSTL实例的调试。 三、实验主要步骤 1. EL表达式实例程序的调试 (1)源代码 <%@ page language="java" import=".*" pageEncoding="GBK"%> <%@ taglib uri="" prefix="c"%> (1)源代码 <%@ taglib uri="" prefix="c" %> JSTL日期格式案例

JSTL日期格式标记


full格式日期:
long格式日期:
medium格式日期:

EL表达式 (详解)

EL表达式 1 EL简介 1 语法结构 ${expression} 2 [] .运算符 EL 提供.和[]两种运算符来 取数据 当要 取的属性 称中包含一些特殊 符 如.或?等并非 母或数 的符号 就一定要使用[] 例如 ${user.My-Name}应当改 ${user["My-Name"] } 如果要动态取值时 就可 用[]来做 而.无法做到动态取值 例如 ${https://www.360docs.net/doc/4f7754467.html,er[data]}中data 是一个变量 3 变量 EL 取变量数据的方法很简单 例如 ${username} 它的意思是取出某一范围中 称 username的变量 因 们并没有指定哪一个范围的username 所 它会依序从Page Request Session Application范围查找 假如途中找到username 就直接回传 再继续找 去 但是假如全部的范围都没有找到时 就回传null 属性范围在EL中的 称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 4) 1--EL表达式用${}表示,可用在所有的HTML和JSP标签中作用是 替JSP页面中复杂的JAVA 码. 2--EL表达式可操作常量变量和隐式对象. 最常用的隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个 符串的值. ${paramValues}表示返回请求参数的一组

值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope表示应用范围的变量. 3 --<%@ page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁 止.FALSE表示 禁 止.JSP2.0中默认的启用EL语言. 4-- EL语言可显示逻辑表达式如${true and false}结果是false 关系表达式如${5>6} 结 果是false 算术表达式如${5+5} 结果是10 5--EL中的变量搜索范围是:page request session application 点运算符(.)和"[ ]"都是 表示获取变量的值. 别是[ ]可 显示非词类的变量 2 EL隐含对象 1) 范围有关的隐含对象 范围有关的EL 隐含对象包含 四个 pageScope requestScope sessionScope 和 applicationScope 它们基本 就和JSP的pageContext request session和application一样 在EL中 这四个隐含对象只能用来取得范围属性值 getAttribute(String name) 能取得 他相关信息 例如 们要取得session中储 一个属性username的值 可 利用 列方法 session.getAttribute("username") 取得username的值 在EL中则使用 列方法 ${https://www.360docs.net/doc/4f7754467.html,ername} 2) 输入有关的隐含对象 输入有关的隐含对象有两个 param和paramValues 它们是EL中比较特别的隐含对象 例如 们要取得用户的请求参数时 可 利用 列方法 request.getParameter(String name) request.getParameterValues(String name) 在EL中则可 使用param和paramValues两者来取得数据 ${https://www.360docs.net/doc/4f7754467.html,} ${https://www.360docs.net/doc/4f7754467.html,}

相关主题
相关文档
最新文档