javaweb-el-jstl

33 篇文章 0 订阅
4 篇文章 0 订阅
  1. el表达式${属性名 }从作用域中获取指定属性名的共享数据;可以解决【1】jsp页面Java脚本 从自己的作用域取值null时页面显示null【2】只能从自己的作用域取值;查找顺序:${属性名 }从page,request,session,appliaction,同pageContext的findAttribute()方法
    1. 用法1:顺序访问域对象中的属性 ${ 作用域.setAttribute("属性名",object)的属性名 } 无引号
      2:${作用域范围.属性}---> 表示从指定作用域中拿共享数据  : ${requestScope.msg}
      作用域对象:  pageScope/requestScope/sessionScope/applicationScope (重点掌握)
      用法3:
      EL获取对象中的属性:session.setAttribute("属性对象",object)
      ${属性对象.子属性} 提供set方法
      ${属性对象["子属性"]}    ---> 解决一些比较奇诡的属性名,person[www.icbc]

    2. pageContent是jsp的

    3. 第3种是tomcat7才出现,以上三种方式都可以获取上下文路径

    4. 在EL中做运算(算术/比较)
      ${1 + 2}   ${1 > 2} ${ 1 eq 1 }

    5. 在EL中判断空
      ${empty 属性} 返回 true或false

      session.setAttribute("person",new Persion() )判断person对象是否在作用域(那4个)中:${empty person}<br>; session.setAttribute("list",new ArryList<>() )${empty list} 判断的是集合中是否有元素

    6. JSTL(JSP Standard Tag Library) JSP 标准标签库

    7. 使用JSTL的准备:
          1:加入jar包: taglibs-standard-impl-1.2.5.jar;  taglibs-standard-spec-1.2.5.jar(standard.jar, jstl.jar)
            在Tomcat根/webapps/examples/WEB-INF/lib找到.
          2:通过JSP的taglib指令,引入标签库.
            <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

      标签库                          URI                                                               前缀           使用模式
      ----------------------------------------------------------------------------------------------------------------------------
      核心标签库                 http://java.sun.com/jsp/jstl/core          c              <c:tagname…>
      国际化标签(I18N)      http://java.sun.com/jsp/jstl/fmt           fmt           <fmt:tagname…>
      SQL标签库                   http://java.sun.com/jsp/jstl/sql            sql            <sql:tagname…>
      XML标签库                  http://java.sun.com/jsp/jstl/xml           x              <x:tagname…>

  2.  if标签
       格式1: 在<c:if> 体中不包括体的使用格式:
    <c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”/>
      属性test: boolean类型的表达式,
      属性var:这个变量用于保存test条件表达式判断所返回的true或者false值
      scope : 将var 这个变量放在哪个作用域里面: 默认是:page

    格式2:  当<c:if> 体中包括体时,使用格式如下:
    <c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”>
           body content  //当 test 返回是true 才显示
    </c:if>

    <c:choose>
    <c:when test="${age<12}">
    	儿童<br>
    </c:when>
    <c:when test="${ 18>age&&age>=14}">
    少年<br>
    </c:when>
    <c:otherwise>
    成人
    </c:otherwise>
    </c:choose>

    forEach迭代标签

    该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,
    一般的使用格式如下:
    <c:forEach items=”collection” var=”varName” [varstatue=”varStatusName”]
        [begin=”begin”] [end=”end”] [step=”step”]>
           Body content
    </c:forEach>

      begin: 循环迭代开始下标
      end: 结束迭代的下标       强调:  取值范围: [begin, end]
      step: 步长,begin end 每次添加多少, 默认是1
      var: 变量, 每次迭代拿到的变量值,var 这个变量默认作用域是:page?
      items: 需要迭代的数据集合(java集合/数组)
      varstatue:存储迭代的状态信息,可以访问到迭代自身的信息.  它是一个对象,所有有属性:   
     见下图:

    forEach迭代标签使用:
    分2种迭代:
    1: 无数据迭代, 类似java   普通for循环: for(int i = 0; i < 10; i++)

    <c:forEach   var="i" begin="1" end="10" >
    ${i}<br>
    </c:forEach>


    2: 有数据迭代, 类似java  增强for循环for(对象  变量 : 集合/数组)

    <% String[] lastNames= {"趙","錢","孫","李"};
    session.setAttribute("lastNames", lastNames); %>
    <c:forEach items="${lastNames}" var="lastName" begin="1" >
    ${lastName}
    </c:forEach>

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值