zoukankan      html  css  js  c++  java
  • EL和JSTL使用笔记

    目录

    一 EL和JSTL的作用

    • 去掉jsp文件中的jav代码

    二 EL表达式和JSTL间的关系

    EL表达式和JSTL间的关系

    • 通过EL获取到数据之后交给JSTL处理,处理完之后,再将数据交给EL显示

    二 EL表达式的作用

    基础:EL表达式的取值范围

    默认取值范围,是为了让开发者不用经常写范围,是为了简化EL表达式

    1)默认取值范围

    EL默认从如下四个对象(JSP中的部分隐含对象)中依次取值

    • page
    • request
    • session
    • application

    2)指定取值范围

    • 指定在request中取值:requestScope.stu.name
    • 指定在session中取值:sessionScope.stu.name
    • 指定在page中取值:pageScope.stu.name
    • 制定在applicatio中取值:application.stu.name

    2.1 访问Bean的属性

    通过EL表达式访问属性都是通过bea属性来访问

    2.1.1 bean属性了解

    • 和get/set对象的属性叫bean属性
    • 通过get/set反应出来的我们以为的属性叫bean属性
    • 去掉get并将首字母小写的属性是bean属性
    • Bean属性通常都和对象属性一致,也可以修改为不一致

    2.1.2 案例

    <!-- 等价于request.getAttribute("stu").getName() -->
    <p>姓名:${stu.name}</p>
    <!-- 等价于request.getAttribute("stu").getAge() -->
    <p>年龄:${stu["age"]}</p>
    <!-- 等价于request.getAttribute("stu").getCourse().getId()
    	id的i不要大写 -->
    <p>课程Id:${stu.course.id}</p>
    

    2.2 输出简单的运算效果

    基本上基本运算都支持,也使用了empty来进行判空运算

    <!-- 2. 支持运算 -->
    	<p>年龄+5${stu.age+5}</p>
    	<p>判断年龄是否在20~30之间:${stu.age>20 && stu.age<30}</p>
    	<p>判断student是否为空:${empty stu}</p>
    

    2.3 获取请求的参数值

    ${param.username}
    等价于
    request.getParameter("username");
    
    ${param.city}
    等价于
    request.getParameterValues("city");
    

    案例

    <!-- 3. 获取参数 -->
    	<p>获取请求参数:${param.user}</p>
    

    三 JSTL介绍及使用

    3.1 JSTL介绍

    JSTL全称是JSP Standard Tag Library,即JSP标准标签库.是sun公司定义的一套标准,由Appache组织基于这套标准开发的一套标签库后又转给sun公司,被称为JSTL,成为了Javaee5.0的核心

    3.2 JSTL使用

    1. 使用maven导入jar包
    <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    
    1. 在jsp文件中导入要使用的标签库
      JSP中标签库的位置以及结构

    2. 在JSP文件中导入标签库

    <%@page pageEncoding="utf-8"%>
    <!--
    	uri为在maven依赖库中uri标签对应的值(12行)
    	prefix为在maven依赖库中short-name标签对应的值(11行)
    	 -->
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" 
    	prefix="c" %>
    

    3.2.1 常用标签

    if标签

    <!-- 1. if标签 -->
    <p>
    	<!-- 在test中写条件,但是if语句没有else -->
    	<c:if test="${stu.sex == 'M'}">男</c:if>
    	<c:if test="${stu.sex == 'F'}">女</c:if>
    </p>
    

    choose标签

    <c:choose>
    	<!-- 相当于if -->
    	<c:when test="${stu.sex == 'M'}">男</c:when>
    	<!-- 相当于esle if -->
    	<c:when test="${stu.sex == 'F'}">女</c:when>
    	<!-- 相当于else -->
    	<c:otherwise>不男不女</c:otherwise>
    </c:choose>
    

    forEach标签

    <h2>3. forEach标签</h2>
    <!-- 
    	items:声明遍历的数据
    	var:给每次循环所获得的数据命名
     -->
    <p>
    	<c:forEach items="${stu.intrests}" var="intrest">
    		${intrest } 
    	</c:forEach>
    </p>
    

    结果展示:

    查询结果

    3.3 JSTL运行原理

    JSTL运行原理

    • 请求经由servlet转发至jsp后,遇到了遇到使用jstl标签,根据jsp文件引用的jsp标准标签库引用的语句,之后再由引用哪一个标签,找到标签库中的对应的标签解析语句,调用其中的doTag()方法,翻译成对应的java代码.
  • 相关阅读:
    用jQuery写的一个简单的弹出窗口(IE7\IE8\FF3)
    live write test
    sql2
    查询所有表索引
    java初学问题记录(2012.02.092012.02.16)
    SQL
    centso7网卡bond
    vmware模板
    Dockerfile参考
    Docker简单介绍
  • 原文地址:https://www.cnblogs.com/gupan/p/9209819.html
Copyright © 2011-2022 走看看