EL和JSTL详解

复习

  • JSP

    • jsp 三大指令
      page
      include
      taglib

    • jsp 三个动作标签
      <jsp:include>
      <jsp:forward>
      <jsp:param>

    • jsp 九个内置对象
      pageContext
      request
      session
      application
      out
      exception
      response
      page
      config

  • EL
    ${ 表达式 }
    取4个作用域中的值
    有11个内置对象。
    pageContext
    pageScope
    requestScope
    sessionScope
    applicationScope
    header
    headerValues
    param
    paramValues
    cookie
    initParam

  • JSTL

使用1.1的版本, 支持EL表达式, 1.0不支持EL表达式

拷贝jar包, 通过taglib 去引入标签库

一、EL表达式

全名为Expression Language,用来替代<%= %>脚本表达式。

作用是为了简化咱们的jsp代码,具体一点就是为了简化在jsp里面写的那些java代码

1.写法格式

基本结构:${ 表达式 }
EL只能获取域中的数据!!
EL只能获取不能设置!!!
EL只能获取不能遍历!!!

2.常见的取值
  • 获取数据
    • 获取常量: 支持 数字/字符串/布尔值, 整个el表达式的值就是当前常量的值

    • 获取变量:

      el表达式可以获取变量的值,在获取时它的底层会调用pageContext的findAttribut e()方法按照由小到大的顺序在四大作用中搜寻指定名称的值,如果找到就直接返回该值, 如果找不到就什么也不输出

    • 获取数组中的数据: 可以通过 数组变量名[数字]来获取域中数组中的内容

    • 获取集合中的数据: 可以通过 集合变量名[数字]来获取域中集合中的内容

    • 获取map中的数据: 可以通过 map变量名[键] 或者是 map变量名.键 获取map中的数据

      需要注意,map变量名.键的形式,可能产生歧义,比如map.wife.another,因此这种情况下优先使用map变量名[“键”]

    • 获取javaBean中的属性: 在获取javaBean中的属性值时, 点什么就相当于get什么。

比如: p.username <==> p.getUsername()) 
之前获取web应用的名称是通过 <%= request.getContextPath() %>
但是这种写法不推荐, 推荐使用el表达式来获取:
${
    pageContext.request.contextPath }
3.${表达式 }

如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个作用域取。 一直把四个作用域取完都没有, 就没有显示。

  1. 取出4个作用域中存放的值方式比较 。
<%
	pageContext.setAttribute("name", "page");
	request.setAttribute("name", "request");
	session.setAttribute("name", "session");
	application.setAttribute("name", "application");
%>

按普通手段取值
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>

使用EL表达式取出作用域中的值
${
    pageScope.name }
${
    requestScope.name }
${
    sessionScope.name }
   ${
    applicationScope.name }
  1. 如果域中所存的是数组
<%
	String [] a = {
   "aa","bb","cc","dd"};
	pageContext.setAttribute("array", a);
%>

使用EL表达式取出作用域中数组的值<br>
 ${
   array[0] } , ${
   array[1] },${
   array[2] },${
   array[3] }
  1. 如果域中锁存的是集合
使用EL表达式取出作用域中集合的值
${
   li[0] } , ${
   li[1] },${
   li[2] },${
   li[3] }
  1. 取出Map集合的值
<------------Map数据----------
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值