Day10_23——EL表达式

EL表达式

1.EL是jsp内置的表达式语言

  • jsp2.0开始,不让再使用java脚本,而是使用EL表达式和动态标签来代替java脚本

  • EL替代的式<%= ...... %>,也就是说EL只能做输出

2.EL表达式来读取四大域

  • ${xxx},全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null

  • {requestScope.xxx}、{applicationScope.xxx},指定域获取属性

3.JavaBean导航

<%@page import="Demo_01."* %>

  

<%

arr a = **new** arr();

a.setS("XXX");

Person p = **new** Person();

p.setAge(22);

p.setName("李四");

p.setArr(a);

request.setAttribute("per", p);

%>

使用el获取request域的值

${requestScope.per.arr.s}

4.EL的11个内置对象

EL可以输出的东西都在11个内置对象中,其中有10个事Map类型,pageContext不是Map,它就是PageContext类型。

  • param:对应参数,key为参数名,value为参数值,适用于单值的参数。

  • paranValues:对应参数,key为参数名,value为多个参数值,适用于多值的参数。

  • header:对应请求头,key为头名称,value为头值,适用于单值请求头。

  • headerValues:对应请求头,key为头名称,value为多个头值,适用于多值请求头。

  • initParam:获取内的参数

  • cookie:Map类型,其中key事cookie的name,value事cookie对象。

${cookie.uesrname.value}

  • pageContext:它事PageContext类型,${pageContext.request.contextPath}(项目名-以后的表单还要超链接都以它开头)

5.El的函数库(由JSTL提供)

  • 导入标签库<%@taglib prefix=”fn” uri=”http://java.sun/jsp/jstl/functions”%>
EL.jpg

写法:${fn:length(xxx)}

6.自定义函数类

  • 写一个java类,类中可以定义0~N个方法,但必须事static,而且有返回值

  • 在WEB-INF目录下创建一个tld文件,要在jstl.jar中复制开头和结尾,并且在Java文件中有几个方法,就要在tld文件中写几个function。

 // 方法说明(可不写)

  Tests if an input string contains the specified substring in a case insensitive way.



fun // 方法名(自己起名字)

cn.itcast.MyFunction

/ / Java文件的位置

java.lang.String fun()

// 对应的方法

// 例子(可不写)

  


  • 在jsp页面导入标签库

<%@ taglib prefix=”xx” uri=”/WEB-INF/tlds/Xxx.tld” %>

  • 在jsp页面使用自定义函数:${xx:fun() }

你可能感兴趣的:(Day10_23——EL表达式)