Java篇-EL与JSTL

作者: TianTianBaby223 | 来源:发表于2018-10-04 22:35 被阅读1次

一 : EL简述

在jsp实际开发中,为了获取servlet域对象中存储的数据,经常需要书写很多java代码,这样做法会是jsp页面混乱.为此在JSP2.o规范中提供了EL表达式.

EL->Expression Language 目的是为了使jsp写起来更加的简单明了,它提供了jsp中简化表达式的方法,让jsp的代码更加简化.

二 : EL内置对象

分类 内置对象名称 描述
域对象 pageScope page域对象
域对象 requestScope request域对象
域对象 sessionScope session域对象
域对象 applicationScope application域对象
请求参数 parm 获得一个参数
请求参数 parmValues 获得一组参数
请求头 header 获得一个请求头
请求头 headerValues 获得一组请求头
JSP上下文对象 pageContext WEB开发中的pageContext.
全局初始化参数 initParam 获取全局初始化参数
cookie cookie WEB开发中cookie

其中
pageScope,requestScope,sessionScope,applicationScope为获取jsp中域中的数据
param,paramValues为获取参数,相当于
request.getParameter() ,
request.getParameterValues()
header,headerValues为获取请求头信息,相当于request.getHeader(name)
initParam 为获取全局初始化参数,相当于this.getServletContext().getInitParameter(name)
cookie为WEB开发中cookie
相当于request.getCookies()---cookie.getName()---cookie.getValue()
pageContext WEB开发中的pageContext,pageContext获得其他八大对象,${pageContext.request.contextPath}

三 : EL 从域中取出对象

EL 最重要的作用是获取四大域的数据,格式为 : ${EL表达式}

例如 :

EL表达式:${requestScope.name}

① : EL获得PageContext域中的值 : ${pageScope.key};
② : EL获得request域中的值 : ${requestScope.key};
③ : EL获得session域中的值 : ${sessionScope.key};
④ : EL获得application域中的值 : ${applicationScope.key};
: EL域中获得某个值${key}; 依次从pageContext域,request域,session域,application域中​获取属性,在某个域中获取后将不在向后寻找

四 : EL执行表达式

  • empty运算
    <br>${user == null }
    <br>${user != null }
    <br>${empty user  }
    <br>${not empty user  }
  • 三元运算
    <br>${user == null ? true : false  }
  • 算数运算符
${"1"+2 } 将字符串转换成数字,然后进行计算
${a+2 } a将从域中获得数据,如果没有为0

五 : JSTL简述

JSTL->JSP Standard Tag Library,JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑代码,JSTL出现的目的和EL一样,就是要替代jsp页面中的脚本代码

标签库 标准库URL 前缀
Core http://java.sun.com/jsp/jstl/core c
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/functions fn

六 : JSTL导入

①在Apache的网站下载JSTL的JAR包。http://archive.apache.org/dist/jakarta/taglibs/standard/binaries - > 下载​JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包​进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jarstandard.jar
②导入 工程 lib中
③导入核心标签库
注意 : prefix 的值可以随便填写,但是几乎通常为上表的前缀.

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

七 : forEach与if标签使用

( 一 ) forEach标签使用

  • 模拟for循环
<c:forEach begin="0" end="5" var="i">
        ${i }<br>
    </c:forEach>
  • 获取遍历List
List<String> strList = new ArrayList<String>();
    strList.add("百百");
    strList.add("可可");
    strList.add("思思");
    request.setAttribute("strList", strList);

    <c:forEach items="${strList}" var="str">
        ${str }<br>
    </c:forEach>
  • 获取遍历List<User>
List<User> userList = new ArrayList<User>();
    User user1 = new User();
    user1.setUsername("雪雪");
    user1.setPassword("123");
    
    User user2 = new User();
    user2.setUsername("美美");
    user2.setPassword("456");
    
    userList.add(user1);
    userList.add(user2);
    application.setAttribute("userList", userList);

    <c:forEach items="${userList }" var="item">
        ${item.username}---${item.password }<br>
    </c:forEach>
  • 获取遍历Map

    Map<String,String> strMap = new HashMap<String,String>();
    strMap.put("name", "花花");
    strMap.put("add", "月球");
    strMap.put("sex", "女");
    session.setAttribute("strMap", strMap);


<c:forEach items="${strMap }" var="item">
        ${item.key }-----${item.value }<br>
    </c:forEach>

注意 :
varStatus用于指定当前迭代状态信息的对象保存到page域中的名称
var属性用于指当前迭代到的元素保存到page域中的名称

  • varStatus使用
    count : 表示元素在集合中的序号,从1开始
    index : 表示当前元素在集合中的索引,从0开始
    first : 表示当前元素是否为集合的第一个元素
    last : 表示当前元素是否为集合的最后一个元素
    <c:forEach begin="0" end="5" var="i" varStatus="status">
        ${i }<br>
        ${status.count }<br>
        ${status.index }<br>
        ${status.first }<br>
        ${status.last }<br> <hr>    
    </c:forEach>

(二)if标签使用

<c:if test="${1==1 }">
      我真很帅.
    </c:if> 

相关文章

  • Java篇-EL与JSTL

    一 : EL简述 在jsp实际开发中,为了获取servlet域对象中存储的数据,经常需要书写很多java代码,这样...

  • 编写项目遇到的问题

    1.JSTL,EL用法的注意点Java.lang.NumberFormatException: For input...

  • JavaEE-JSP基础-EL表达式和JSTL标签库(Tagli

    EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 1.EL内置对象 2.EL语...

  • jstl标签库

    一、jstl标签库 jstl是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言。js...

  • EL与JSTL

    1、什么是EL语言:表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语音 EL作用...

  • Java的学习体系

    Java的底层是C语言。 javaweb:CSS,HTML,JavaScript,JSTL/EL,dom4j,lo...

  • JavaWeb宠物管理系统

    成品展示: 用到的技术: Java+JSP+Mysql+Servlet+JDBC+JSTL+EL表达式+jQuer...

  • JavaWeb之 JSTL

    JSTL jstl的概述 是apache的东西,依赖EL 使用jstl需要导入jstl1.2.jar【JSTL 1...

  • java设计

    1什么是JSTLJSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL...

  • 前端表达式

    EL与JSTL表达式 EL介绍 什么是EL 表达式语言 EL的功能 替代JSP页面中数据访问时的复杂编码 EL特点...

网友评论

    本文标题:Java篇-EL与JSTL

    本文链接:https://www.haomeiwen.com/subject/yelmoftx.html