EL(Expression Language)表达式

来源:互联网 发布:火车头数据采集器使用 编辑:程序博客网 时间:2024/04/29 12:15
EL 全名为Expression Language。EL主要作用:
获取数据:
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
执行运算:
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

<%@page import="com.itheima.domain.Person"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://www.itheima.com/MyFunc" prefix="myFunc" %><%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head></head><body><hr /><h1>用来操作javabean的属性</h1><%Person p = new Person();p.setName("李四");p.setAge(15);pageContext.setAttribute("p", p);%>${p.age } <!--15  -->${p.name }<!-- 李四 --><a href="${pageContext.request.contextPath }/index.jsp">xxxx</a><hr><h1>用来操作Map的数据</h1>使用中括号的地方都可以使用点来替代,除了中扩号中为数字或包含特殊字符的情况.-<br>如果中括号中书写的值有引号,则el表达式直接使用该值。如果中扩中的值没有引号,则el表达式将其作为一个变量到域中搜寻变量的值,找到的变量的值作为关键字使用<br><%Map map = new HashMap();map.put("name1", "张飞1");map.put("name2", "张飞2");map.put("name3", "张飞3");pageContext.setAttribute("map", map);pageContext.setAttribute("name2", "name3");%>${map["name2"]} <!--张飞2  -->${map[name2] } <!-- 张飞3 -->${map.name1 }<!-- 张飞1 -->${map.name4 }<!-- 不输出任何内容 --><hr /><h1>用来操作List的数据</h1><%List list = new ArrayList();list.add("11111");list.add("22222");list.add("33333");pageContext.setAttribute("list", list);%>${list[1] }<!-- 22222 --><hr /><h1>用来操作数组中的数据</h1><%String[] names = { "aaa", "bbb", "ccc" };pageContext.setAttribute("names", names);%>${names[1] }<!--bbb  --><hr /><h1>用来输出域中的数据</h1><%pageContext.setAttribute("name", "张天师");%>${name }<!-- 张天师 --><hr /><h1>el支持三元运算符</h1><%int i = 10;int num2 = i < 100 ? i : 100;%>${1>3?"你确定吗?":"1不可能大于3" }<!-- 1不可能大于3 --><hr><h1>el可以empty运算符,此运算符用来检查对象是否为null或“空”</h1>null true 集合 虽然不为null 但是集合中内容为空,返回true 字符串 虽然部位null 但是字符串是空字符串“”返回false<%String[] ns = {};System.out.print(ns);pageContext.setAttribute("ns", ns);%>${empty ns }<!-- true --><%char[] nn = {};pageContext.setAttribute("nn", nn);%>xxxx${empty nn }<!-- false --><hr><h1>el可以用来进行逻辑运算</h1>&& and || or ! not ${1>3 || 3<5 } <!-- true -->${1>3 or 3<5 }<!--true  --><hr><h1>el可以用来进行关系运算</h1>== eq > gt < lt <= le >= ge != ne ${1==1 }${1 eq 1 } ${1>2 }${1 gt 2 }<%int num = 10;pageContext.setAttribute("num", num);%>${num>5 }<!--true  --><hr><h1>el可以用来进行算数运算,在进行算术运算时,el将会试图把非数字转换为数字参与运算</h1>${1+1}<!-- 2 --><hr /><%pageContext.setAttribute("class", "pageContext");request.setAttribute("class", "request");application.setAttribute("class", "application");%><!-- http://localhost:8080/Test6/el1.jsp?name1=aaa&name2=333 -->${param.name1 } <!-- aaa -->${param.name2 } <!-- 333 -->${header["Accept-Language"] }<!-- Accept-Language:zh-CN,zh;q=0.8 -->${headerValues["Accept-Language"][0] } <!-- zh-CN,zh;q=0.8 -->${cookie.JSESSIONID.name }<!-- JSESSIONID  -->${cookie.JSESSIONID.value } <!-- 0A550C47771A781130D5D37825465708 --><!-- web.xml<context-param><param-name>name1</param-name><param-value>value1</param-value></context-param> -->${initParam.name1 }<!-- value1 --><hr/><h1>调用java里面的方法</h1><!-- 1.WEB-INF目录下 myFunc.tld<?xml version="1.0" encoding="UTF-8"?><taglib version="2.0" 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"> <tlib-version>1.0</tlib-version> <short-name>myFunc</short-name> <uri>http://www.itheima.com/MyFunc</uri> <function> <name>encode</name> <function-class>com.itheima.el.MyURLEncoder</function-class> <function-signature> java.lang.String MyEncode( java.lang.String ,java.lang.String ) </function-signature> </function></taglib>2.在com.itheima.el包创建MyURLEncoder。javapackage com.itheima.el;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;public class MyURLEncoder {//将传入的字符串进行URL编码后返回public static String MyEncode(String str,String charset){try {return URLEncoder.encode(str, charset);} catch (UnsupportedEncodingException e) {e.printStackTrace();throw new RuntimeException();}}}3.<%-- <%@taglib uri="http://www.itheima.com/MyFunc" prefix="myFunc" %> --%> -->${myFunc:encode("涂文远","utf-8") }<!-- %E6%B6%82%E6%96%87%E8%BF%9C --><hr/><h1>jstl中的常用el函数</h1>${fn:toUpperCase("xxxHJKLSDfkjsdKJkfdkfjkSD") }<!-- XXXHJKLSDFKJSDKJKFDKFJKSD -->  ${fn:toLowerCase("xxxHJKLSDfkjsdKJkfdkfjkSD") }<!-- xxxhjklsdfkjsdkjkfdkfjksd -->  ${fn:trim(" www.it315.org ") }<!--www.it315.org-->  ${fn:length("www.it315.org") }<!--  13-->  ${fn:split("www.baidu.com",".")[1] }<!--baidu  -->  ${fn:join(fn:split("www,baidu,com",","),".") }<!--www.baidu.com  -->  ${fn:indexOf("www.baidu.com","baidu") }<!--4  -->  ${fn:contains("www.baidu.com","baidu") }<!--true  -->  ${fn:containsIgnoreCase("www.baidu.com","Baidu") }<!--  true-->  ${fn:startsWith("www.baidu.com","www") }<!-- true -->  ${fn:endsWith("www.baidu.com","cn") }<!-- false -->  ${fn:replace("www it315 org", " ", ".") }<!--www.it315.com  -->  ${fn:substring("www.baidu.com",4,9) }<!-- baidu -->  ${fn:substringAfter("www.baidu.com",".") }<!--baidu.com  -->  ${fn:substringBefore("www.baidu.com",".") }<!-- www --> </body></html>


1 0
原创粉丝点击