el表达式

1.8 EL表达式

1.8.1 EL基本概念

EL是JSP内置的表达式语言!

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

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

1.8.2 EL表达式读取四大域

  • ${xxx} ,全域查找名为 xxx 的属性,如果不存在,输出空字符串,而不是 null
* ${pageScope.xxx}、${requestScope.xxx}、${sessionScope.xxx}、${applicationScope.xxx},指定域获取属性!

<h3>使用el获取request域的emp</h3>

${requestScope.emp.address.street }<!-- request.getAttribute("emp").getAddress().getStreet() --><br/>

1.8.3 EL表达式与内置对象

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

  • 我们已经学习了四个

  • param:对应参数,它是一个Map,其中key参数名,value是参数值,适用于单值的参数。

  • paramValues:对应参数,它是一个Map,其中key参数名,value是多个参数值,适用于多值的参数。

  • header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值请求头

  • headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值请求头

  • initParam:获取<context-param>内的参数!

<context-param>

<param-name>xxx</param-name>

<param-value>XXX</param-value>

</context-param>

<context-param>

<param-name>yyy</param-name>

<param-value>YYY</param-value>

</context-param>

${initParam.xxx}

  • cookie:Map<String,Cookie>类型,其中key是cookie的name,value是cookie对象。 ${cookie.username.value}

  • pageContext:它是PageContext类型!${pageContext.request.contextPath}

=========================================

1.8.4 EL函数库(由JSTL提供的)

  • 导入标签库:
<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

String toUpperCase(String input):把参数转换成大写

String toLowerCase(String input):把参数转换成小写

int indexOf(String input, String substring):从大串,输出小串的位置!

boolean contains(String input, String substring):查看大串中是否包含小串

boolean containsIgnoreCase(String input, String substring):忽略大小写的,是否包含

boolean startsWith(String input, String substring):是否以小串为前缀

boolean endsWith(String input, String substring):是否以小串为后缀

String substring(String input, int beginIndex, int endIndex):截取子串

String substringAfter(String input, String substring):获取大串中,小串所在位置后面的字符串

substringBefore(String input, String substring):获取大串中,小串所在位置前面的字符串

String escapeXml(String input):把input中“<”、">"、"&"、"'"、""",进行转义

String trim(String input):去除前后空格

String replace(String input, String substringBefore, String substringAfter):替换

String[] split(String input, String delimiters):分割字符串,得到字符串数组

int length(Object obj):可以获取字符串、数组、各种集合的长度!

String join(String array[], String separator):联合字符串数组!

=========================================

1.8.5 EL自定义函数库

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

  • 在WEB-INF目录下创建一个tld文件

<function>

<name>fun</name>

<function-class>cn.itcast.fn.MyFunction</function-class>

<function-signature>java.lang.String fun()</function-signature>

</function>
  • 在jsp页面中导入标签库
<%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld" %>
  • 在jsp页面中使用自定义的函数:
${it:fun() }




posted @ 2022-02-28 08:36  好(justice)……  阅读(22)  评论(0编辑  收藏  举报