`

EL表达式的简单使用

阅读更多

1EL简介

 

1)语法结构

    ${expression}


2[].运算符 

    EL 提供.[]两种运算符来存取数据。
    
  当要存取的属性名称中包含一些特殊字符,如.?等并非字母或数字的符号,就一定要使用 []
例如: ${user.my-name}应当改为${user["my-name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值,例如:${sessionScope.user[data]}data 是一个变量。


3)变量
     EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
    
因为我们并没有指定哪一个范围的username,所以它会依序从PageRequestSessionApplication范围查找。
    
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null
        
属性范围        EL中的名称                 解释
         page             pageScope              
表示页面范围的变量。
         request         requestScope         
表示请求对象的变量。
         session         sessionScope         
表示会话范围内的变量。
         application    applicationScope     
表示应用范围的变量。

注意:任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。


4)

1--EL表达式用${}表示,可用在所有的HTMLJSP标签中,作用是代替JSP页面中复杂的JAVA代码。


2--EL表达式可操作常量、变量和隐式对象。 最常用的隐式对象有${param}${paramValues}。其中${param}表示返回请求参数中单个字符串的值。${paramValues}表示返回请求参数的一组值。


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  

点运算符(.)"[ ]"都是表示获取变量的值,区别是[ ]可以显示非词类的变量。

 

2EL隐含对象
1)
与范围有关的隐含对象
与范围有关的EL 隐含对象包含以下4个:pageScoperequestScopesessionScope applicationScope;它们基本上就和JSPpageContextrequestsessionapplication一样;在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。
例如:我们要取得session中储存一个属性username的值,可以利用下列方法:
     session.getAttribute("username")
取得username的值,
EL中则使用下列方法
     ${sessionScope.username}
2)与输入有关的隐含对象
与输入有关的隐含对象有2个:paramparamValues,它们是EL中比较特别的隐含对象。
例如我们要取得用户的请求参数时,可以利用下列方法:
     request.getParameter(String name)
     request.getParameterValues(String name)
EL中则可以使用paramparamValues两者来取得数据。
     ${param.name}
     ${paramValues.name[index]}

 

3.其他隐含对象
1)
cookie
JSTL
并没有提供设定cookie的动作,
例:要取得cookie中有一个设定名称为username的值,可以使用${cookie.username} 来取得它。
2)headerheaderValues
header
储存用户浏览器和服务端用来沟通的数据
例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}
另外在极少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。
3)initParam
initParam
取得设定web站点的环境参数(Context)
例:一般的方法String userid = (String)application.getInitParameter("userid");
    
可以使用 ${initParam.userid}来取得名称为userid
4)pageContext
pageContext
取得其他有关用户要求或页面的详细信息。
     ${pageContext.request.queryString}        
取得请求的参数字符串
     ${pageContext.request.requestURL}        
取得请求的URL,但不包括请求之参数字符串
     ${pageContext.request.contextPath}        
服务的web application 的名称
     ${pageContext.request.method}              
取得HTTP 的方法(GETPOST)
     ${pageContext.request.protocol}        
取得使用的协议(HTTP/1.1HTTP/1.0)
     ${pageContext.request.remoteUser}        
取得用户名称
     ${pageContext.request.remoteAddr }        
取得用户的IP 地址
     ${pageContext.session.new}            
判断session 是否为新的
     ${pageContext.session.id}              
取得session ID
     ${pageContext.servletContext.serverInfo}  
取得主机端的服务信息
 

4、条件标签
1.算术运算符有五个:+-*/div%mod
2.
关系运算符有六个:==eq!=ne<lt>gt<=le>=ge
3.
逻辑运算符有三个:&&and||or!not
4.
其它运算符有三个:Empty运算符、条件运算符、()运算符
    
例:${empty param.name}${A?B:C}${A*(B+C)}

 

5JSP2.0EL扩展表达式语言的设置
有了JSP2.0,就可以使用EL扩展表达式了。对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true;

< %@ page isELIgnored"true|false"%> 
对于整个JSP应用程序,要修改WEB.XML配置(tomcat5.0.16默认是支持EL);

<jsp-property-group>
<description>property group for JSPConfiguration.</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>/jsp/*</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GB2312</page-encoding>
<scripting-invalid>true</scripting-invalid>
<include-prelude>/include/prelude.jspf</include-prelude>
<include-coda>/include/coda.jspf</include-coda>
</jsp-property-group>

 
6JSP2.0中定义和使用函数

 1

表达式语言允许你定义可在表达式中调用的函数。函数必须作为public类中的public static方法编写。同时要将文件映射到TLD标志库文件中。
     为了说明函数的使用,我们举一个简单的例子,把两个数相加。首先要编写求两数之和的Java方法代码,如代码示例所示,这里定义了一个静态方法,它接收两个字符串参数,把它们解析成整数并返回它们的和。

示例文件:Compute.java

package com.itttop.test;  

import java.util.*;  

public class Compute {  

    public static int add(String x, String y) {  

        int a = 0;  

        int b = 0;  

    try {  

        a = Integer.parseInt(x);  

        b = Integer.parseInt(y);  

      }catch(Exception e) {}  

        return a + b;  

      }  

   


javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。

2)将方法映射到TLD表中
配置标记库描述文件,函数描述符

< function>  

    < description>add x and y< /description>  

    < name>add< /name>  

    < function-class>com.itttop.test.Compute < /function-class>  

    < function-signature>int add(java.lang.String,java.lang.String) < /function-signature>  

< /function>  

现在我们就可以编写一个JSP页面来使用这个函数。下面的代码示例是包含两个字段的一个表单,用户输入两个数字并按下求和按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。

3)在JSP页面中调用要引用的Taglib标记,然后就可以在jsp页面中访问了。

代码示例: math.jsp

< %@ taglib prefix="my"  uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>  

< HTML> 

    < HEAD>  

        < TITLE>Functions< /TITLE>  

    < /HEAD>  

    < BODY>  

        < H3>Add Numbers< /H3>  

        < P>  

        < FORM action="math.jsp" method="GET">  

        X = < input type="text" name="x" value="${param['x']}">  

        < BR>  

        Y = < input type="text" name="y" value="${param['y']}">  

        < input type="submit" value="Add Numbers">  

        < /FORM>  

        < P>  

        The sum is: ${my:add(param['x'],param['y'])}  

    < /BODY>  

< /HTML> 

 

 

分享到:
评论

相关推荐

    EL表达式的使用详解

    * 简洁的语法:EL 表达式的语法非常简单,易于使用和理解。 * 强大的功能:EL 表达式可以访问和操作 Java 对象的属性,提供了强大的功能。 * 广泛的应用:EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中...

    el表达式用法部分解说

    本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一技术。 #### EL表达式的基础语法 EL表达式总是用大括号`{}`括起来,并且前面有一个美元符号`$`作为前缀,其基本形式为`${...

    EL表达式的使用方法

    ### EL表达式的使用方法 #### 一、简介 在Java Web开发中,EL(Expression Language)表达式是一种非常实用的功能,它允许开发者在JSP页面中动态获取对象属性的值或者执行简单的运算操作。通过使用EL表达式,可以...

    EL表达式包括字符串处理,时间日期的格式化,数字处理

    #### 一、EL表达式的概述与基本使用 EL(Expression Language),即表达式语言,是JavaServer Pages (JSP) 2.0标准的一部分,用于简化JSP页面中对数据访问的操作。它允许开发者通过简单的语法在JSP页面中访问后端...

    简单使用EL表达式标签

    **EL表达式简介** EL(Expression Language,表达式语言...通过简单使用EL表达式标签,我们可以轻松地在JSP页面中展示和处理数据,实现页面与后台的高效交互。理解和熟练运用EL表达式,对于提升Web开发技能至关重要。

    el表达式介绍 el表达式使用帮助文档

    EL表达式的主要目标是提高JSP页面的可读性和可维护性,减少脚本代码的数量。 ### EL表达式的基本语法 EL表达式通常以`$`符号开头,后跟大括号`{}`,如`${expression}`。表达式可以是简单的属性引用,也可以包含...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    但同时,了解EL表达式的另一个新特性也很重要,那就是它作为JSP 2.0中的一个主要新特性,为JSP页面提供了表达语言支持,让访问JSP隐含对象和JavaBeans组件变得更为简单和方便。JSTL(JavaServer Pages Standard Tag ...

    EL表达式(很全很强大)

    #### 一、EL表达式的语法结构及使用 EL(Expression Language)是一种简化了的数据访问语言,用于获取JavaBean属性值或调用其方法等操作。其基本语法结构为`${expression}`,这使得开发者能够在JSP页面上以更简洁的...

    JSTL自定义EL表达式

    本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...

    JSTL,EL表达式语法简介

    例如,使用EL表达式和`&lt;c:if&gt;`标签可以实现简单的条件判断: ```jsp ${user != null}"&gt; 用户已登录:${user.name} ``` 综上所述,JSTL和EL是JSP开发中非常重要的工具,它们提供了丰富的功能,使开发者能够更加...

    EL表达式的应用

    EL表达式的基本语法是 `${expression}`,其中`expression`可以是一个简单的属性引用,也可以是复杂的运算表达式。EL表达式的主要特点包括: 1. **简化的数据访问**:EL表达式可以轻松地访问存储在请求、会话或应用...

    EL表达式所需要的jar包

    在实际应用中,将这些jar包添加到项目的类路径(classpath)中后,开发者就可以在JSP页面中自由地使用EL表达式来访问和操作数据。例如,你可以通过EL表达式 `${user.name}` 获取用户对象的姓名属性,或者使用 `${...

    EL表达式详解+实例教程

    EL表达式的语法结构非常简单,通常采用 `${expression}` 的形式。其中 `expression` 是要计算或获取的表达式。 ##### 2. 运算符 EL提供了两种方式来访问对象的属性:`.` 和 `[]`。这两种方式的区别在于: - 当属性...

    EL表达式详解教程

    ### EL表达式详解教程 #### 一、EL表达式的简介 ...通过使用EL表达式,开发者可以减少对JSP Scriptlet的依赖,提高代码的可维护性和扩展性。掌握EL表达式的语法和特性对于Web开发人员来说是非常重要的。

    EL表达式语言 非常详细

    ### EL表达式语言详解 #### 9.1 概述 在JSP页面开发中,为了提高代码的可读性和可维护性,开发者们逐渐转向使用标签库来替代传统的Java片段语言来实现页面的显示逻辑。然而,自定义标签虽然灵活,但也容易导致重复...

    EL表达式详解教程.zip

    EL(Expression Language,表达式语言)是Java EE...这些文档应该涵盖了EL表达式的详细语法、常见问题和实例解析,帮助你成为EL表达式使用的专家。学习并熟练掌握EL表达式,对于提升JSP开发的效率和代码质量至关重要。

    EL表达式学习资料

    #### 三、EL表达式的基本使用 1. **在JSTL中的使用** 在JSTL(JavaServer Pages Standard Tag Library)中,EL 表达式通常用于设置标签的属性值。例如,在 `&lt;c:out&gt;` 标签中使用 EL 表达式输出变量的值: ```...

    关于EL表达式语言的简单总结

    EL表达式的语法结构非常简单,主要形式为`{expression}`。这里`expression`代表具体的表达式,它可以是变量名、方法调用等。 ##### 2. 运算符 EL提供了两种运算符用于访问对象属性: - **`.`**:点运算符,用于...

    EL表达式运算符用法

    本篇文章将详细介绍EL表达式中的各种运算符及其用法,包括逻辑运算符、关系运算符、算术运算符等,并通过具体的例子进行说明,帮助读者更好地理解和掌握EL表达式的使用技巧。 #### 二、EL表达式基础 EL表达式通常...

    使用EL表达式时候用到的jar包

    在JSP页面中,EL表达式通常以`${}`包裹,可以用来访问页面作用域、请求作用域、会话作用域或应用作用域的属性,以及执行简单的算术运算、条件判断和方法调用。例如: ```jsp &lt;p&gt;Welcome, ${user.name}! ${user....

Global site tag (gtag.js) - Google Analytics