栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

EL表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EL表达式

EL表达式:

EL表达式,全称是expression Language。意为表达式语言。它是Servlet规范中的一部分,是JSP2.0规范加入的内容。其作用是用于在JSP页面中获取数据,从而让我们的JSP脱离java代码块和JSP表达式。

EL注意事项:
  • 没有空指针异常
  • 没有索引越界异常
  • 没有字符串凭拼接效果
  • EL表达式除了能在四大域中获取数据,同时它可以访问其他隐式对象,并且访问对象有返回值的方法
基本语法:

EL表达式的语法格式:${表达式内容}

Java代码块JSP表达式EL表达式
<%

String message = (String)request.getAttribute("message");
out.write(message);
%>
<%=request.getAttribute("message")%>${message}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%--向域对象添加数据--%>
<% request.setAttribute("username", "itzhuzhu");%>

<%--三种方式获取数据--%>
Java代码块获取 <%out.println(request.getAttribute("username"));%>
JSP表达式获取 <%=request.getAttribute("username")%>
EL表达式:${username}

通过上面我们可以看出,都可以从请求域中获取数据,但是EL表达式写起来是最简单的方式。这也是以后我们在实际开发中,当使用JSP作为视图时,绝大多数都会采用的方式。

EL获取数据类型:
%@ page contentType="text/html;charset=UTF-8" language="java" %>


    
    Title


<%--获取基本数据类型--%>
<% pageContext.setAttribute("num", 23);%>
基本数据类型:${num}
<%--获取自定义对象类型--%> <% Student2 student = new Student2("itzhuzhu", 23); pageContext.setAttribute("student", student); %> 自定义对象:${student}
${student.username} ${student.age} <%--获取数组类型--%> <% String[] arr = {"呵呵", "哈哈", "呵呵"}; pageContext.setAttribute("arr", arr); %> 数组:${arr}
<%--获取集合--%> <% ArrayList list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); %> List集合:${list}
${list[0]}
<% HashMap hashMap = new HashMap<>(); hashMap.put("a", new Student2("韩信", 11)); hashMap.put("a", new Student2("李白", 12)); pageContext.setAttribute("hashMap", hashMap); %>% Map集合:${hashMap}
<%--获取四大域对象中的数据--%> <% pageContext.setAttribute("username", "itzhuzhu"); request.setAttribute("username", "itzhuzhu"); session.setAttribute("username", "itzhuzhu"); application.setAttribute("username", "itzhuzhu"); %>
EL运算符:

其他的和java一样

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    String s = null;
    String s2 = "";
    int[] arr = {};
%>
${empty s}
${empty s2}
${empty arr}
三元运算符 <% pageContext.setAttribute("gender", "girl"); %> >女
隐式对象介绍:

EL表达式提供的隐式对象,可以不声明直接来使用,它和JSP的隐式对象不是一回事:

EL中的隐式对象类型对应JSP隐式对象备注
PageContextJavax.serlvet.jsp.PageContextPageContext完全一样
ApplicationScopeJava.util.Map没有应用层范围
SessionScopeJava.util.Map没有会话范围
RequestScopeJava.util.Map没有请求范围
PageScopeJava.util.Map没有页面层范围
HeaderJava.util.Map没有请求消息头key,值是value(一个)
HeaderValuesJava.util.Map没有请求消息头key,值是数组(一个头多个值)
ParamJava.util.Map没有请求参数key,值是value(一个)
ParamValuesJava.util.Map没有请求参数key,值是数组(一个名称多个值)
InitParamJava.util.Map没有全局参数,key是参数名称,value是参数值
cookieJava.util.Map没有Key是cookie的名称,value是cookie对象
JSTL:

JSTL的全称是:JSP Standard Tag Libary。它是JSP中标准的标签库。它是由Apache实现的。

作用:

给开发人员提供通用的标签库,取代JSP页面上的代码,提高代码可读性,降低维护性

JSTL的组成:
组成作用说明
Core核心标签库。通用逻辑处理
Fmt国际化有关。需要不同地域显示不同语言时使用
FunctionsEL函数EL表达式可以使用的方法
SQL操作数据库。不用
XML操作XML。不用
使用要求:

要想使用JSTL标签库,需要添加jar包。

核心标签库

标签名称功能分类分类作用
流程控制核心标签库用于判断
,,流程控制核心标签库用于多个条件判断
迭代操作核心标签库用于循环遍历

演示:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%--导入jstl标签库 --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


  
    JSTL的常用标签
  
  
    <%-- c:if  c:choose   c:when c:otherwise --%>
    <% pageContext.setAttribute("score","F"); %>
    
    	优秀
    
    
    	一般
    
    
AAA BBB CCC DDD 其他 <%-- c:forEach 它是用来遍历集合的 属性: items:要遍历的集合,它可以是EL表达式取出来的 var:把当前遍历的元素放入指定的page域中。 var的取值就是key,当前遍历的元素就是value 注意:它不能支持EL表达式,只能是字符串常量 begin:开始遍历的索引 end:结束遍历的索引 step:步长。i+=step varStatus:它是一个计数器对象。里面有两个属性,一个是用于记录索引。一个是用于计数。 索引是从0开始。计数是从1开始 --%>
<% List list = new ArrayList(); list.add("AAA"); list.add("BBB"); list.add("CCC"); list.add("DDD"); list.add("EEE"); list.add("FFF"); list.add("GGG"); list.add("HHH"); list.add("III"); list.add("JJJ"); list.add("KKK"); list.add("LLL"); pageContext.setAttribute("list",list); %> ${s}

${num}
索引 序号 信息
${vs.index} ${vs.count} ${s}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号