Java web基础总结十之—— jsp EL表达式

Java web基础总结十之—— jsp EL表达式

一.EL表达式简介

EL 是Expression Language的缩写。在jsp中有很大的作用,EL主要有以下一些作用:获取数据,替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。还可以执行运算,利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算,例如 ${user==null}。还可以获取web开发常用的jsp的隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。最后还可以调用Java方法,EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

二.使用EL获取数据。

使用EL表达式获取数据语法:“${变量名}”,在前面已经讨论过,EL表达式语句在执行时,会调用pageContext.findAttribute方法,用变量名为关键字,分别从page、request、session、application四个域中查找相应的变量的值,找到则返回相应对象,找不到则返回空字符串。

比如:${people} ,就会分别从page、request、session、application四个域中查找名为people的属性,如果找到了,就返回,找不到,返回空字符串。

EL表达式不但可以获取变量的值,也可以很轻松获取JavaBean的属性,获取数组、集合的数据,例如:${people.age}、${map.key} 等等

三.使用EL执行一些运算

EL执行运算的语法:${运算表达式},EL表达式支持下面的一些运算符,借用一张图来说明,如下:

比如类似三目运算:

${ people != null?people.age : “0”}

三.获得web开发常用对象

EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。语法是:${隐式对象名称} ,可以获得对象的引用。这11个隐式对象如下所示:

四.EL函数

EL函数,就是使用EL表达式调用Java类的方法,可以是自定义的。语法格式为:${prefix:method(params)}。使用这些函数,可以进行很多的操作,比如可以对显示的字符串进行处理。

SUN公司针对于一些常见处理定义了一套EL函数库。这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库:

<%@taglib uri="http://java.sun.com/jsp/jstl/functions"prefix="fn"%>

下面举个简单的例子:使用fn:contains()函数判断输入的字符串是否包含指定的子串。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"prefix="fn" %>
<html>
<head>
<title>test</title>
</head>
<body>

<c:set var="theString" value=" testString"/>

<c:if test="${fn:contains(theString, 'test')}">
   <p>Found test <p>
</c:if>

<c:if test="${fn:contains(theString, 'TEST')}">
   <p>Found TEST <p>
</c:if>

</body>
</html>

结果是:Found test

五.开发自定义的ELFunction

开发自定义的EL函数和开发自定义标签一样,也是包括以下三个步骤:

1.      编写一个Java类,类中有一个静态方法。
package com.cc;

public class HelloWorld{

	 public static String printOutHello(String message) {

	        if (message == null)
	            return (null);

	       return "hello"+message;

	    }
}

2.      在web-inf\目录下新建一个标签库描述符(tld)文件,在tld文件中对自定义函数进行描述。

<?xml version="1.0" encoding="UTF-8" ?>

<taglib 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-jsptaglibrary_2_0.xsd"
    version="2.0">

    <description>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>/hello</uri>

    <function>
        <name>printOutHello</name>
		<function-class>com.cc.HelloWorld</function-class>
		<function-signature>java.lang.String printOutHello (java.lang.String)</function-signature>
    </function>
</taglib>

3.      在jsp页面导入标签库,并调用el函数

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/WEB-INF/hello.tld" prefix="fn" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>el function test</title>
  </head>

  <body>

  	${fn:filter("world") }

  </body>
</html>
时间: 2024-08-24 15:41:42

Java web基础总结十之—— jsp EL表达式的相关文章

Java web基础总结八之—— jsp基础

Java web基础总结八之-- jsp基础 一.什么是jsp? JSP是Java ServerPages的缩写,它和servlet一样,都是用于开发动态web资源的技术.在servlet中拼凑输出html代码时,非常麻烦.而JSP的最大的特点在于,写jsp就像在写html,但是html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,开发动态资源. 现在随着前端越来越重要,很多的公司都会采取前后端分离的开发模式.即后端只提供返回json等格式的接口,而前端开发人员则通过对后端接

Java web基础总结九之—— jsp标签

Java web基础总结九之-- jsp标签 JSP标签也称之为Jsp Action,在前面讲过,jsp的设计目的就是作为表现层.我们希望JSP页面仅用作数据显示模块,不要嵌套任何java代码引入任何业务逻辑,但在实际开发中不引入一点业务逻辑是不可能的,但引入业务逻辑会导致页面出现难看java代码.jsp的标签就是为了解决这个问题.所以jsp页面中也内置了一些标签(这些标签叫做jsp标签),开发人员使用这些标签可以完成页面的一些业务逻辑.我们也可以开发自定义标签,使jsp页面不出现一行java代

Java Web基础(HTML、Servlet/JSP)

要成为牛逼的JavaWeb程序员, Java Web的基础非常重要,现在有各种成熟的设计框架例如JQuery.Spring.Struts.Mybatis,将Java Web基础的复杂且通用的逻辑进行封装,减少了程序员的代码量,提高了编码效率,但是这些框架非常不利于我们了解Java Web底层如何运作,甚至不知道HTML(HyperText MarkupLanguage).HTTP(HyperText Transfer Protocol).URL(Uniform Resource Locator)

Java Web基础 --- Jsp 综述(上)

摘要: J2EE是一套规范,而Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分.在最初的应用实践中,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,这导致Servlet开发效率极为低下.JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑内容与外观相分离,大大简化了表示层的实现,提高了开发效率.本文以JSP的本质是Servlet为主线,结合JSP转译后所得的Servlet,详细探讨了JSP的原理.执行过程.脚本元素.编译指令

Java Web基础 --- Jsp 综述(下)

摘要: JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化.本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结. 一. JSP 九大内置对象概述及相关概念说明 JSP脚本中包含九个内置对象,这九个内置对象都是 Servlet API 接口的实例,并且JSP规范对它们进行了默认初始化(由 J

Java Web基础小结之Jsp JavaBean

Java Web基础小结In computing, Java Web Start (also known as JavaWS, javaws or JAWS) is a framework developed by Sun Microsystems (now Oracle) that allows users to start application software for the Java Pl... http://bbs.chinaacc.com/forum-2-3/offset-1/to

从Java Web 基础看SSH架构

Java Web开发现在已然成为大型Wed项目的标准,之前一直盲目的使用框架,往往知其然不知其所以然.在经过一段时间的学习与开发,大概掌握了其脉络的基础上,对其做一定总结. 一.Java Web 基础 一个典型的Java Web项目往往包含这些元素:Jsp页面.Servlet.Listener.Filter,以及配置文件web.xml.其中: Jsp和Servlet基本是一回事,主要用来响应客户端的请求.当然Jsp中可以直接嵌入HTML标签,主要还是负责展现. Listener则是负责监听Web

Java Script基础(十) 访问样式表

Java Script基础(十) 访问样式表 动态控制样式表 在JavaScript中,有两种方式可以动态的改变样式属性,一种是使用style属性,另一种是使用样式的className属性.另外控制元素隐藏和显示使用display属性. 1.使用sytle属性 语法: 元素.style.样式属性="值"; 在JavaScript中使用CSS样式与在html中使用CSS少有不同,由于JavaScript中的-表示减号,因此如果样式属性名称中带有"-"则要省去,后面首字

Java Web总结二十Filter、装饰设计模式

一.Filter的部署--注册Filter <filter> <filter-name>testFitler</filter-name> <filter-class>org.test.TestFiter</filter-class> <init-param> <param-name>word_file</param-name> <param-value>/WEB-INF/word.txt</p