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

尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)

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

尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(三)

EL表达式 什么是EL表达式

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


    Title



    <%
        request.setAttribute("key", "值");
    %>

    表达式脚本输出key的值是:<%=request.getAttribute("key")%> 
EL表达式输出key的值是:${key}

这样输出的结果相同EL表达式在输出null值(比如key1)的时候,输出的是空串;jsp表达式脚本输出null值的时候,输出的是null字符串
EL表达式搜索四个域的顺序

EL表达式主要是在jsp页面中输出数据
主要是输出域对象中的数据

session中的数据浏览器关闭后才会消失,所以哪怕注释session后然后刷新页面,还是会输出session当四个域中都有相同的key的数据的时候,EL表达式会根据四个域的从小到大的顺序去进行搜索,找到就输出 EL表达式输出复杂的Bean对象

package com.atguigu.pojo;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

public class Person {
    private String name;
    private String[] phones;
    private List cities;
    private Map map;

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + ''' +
                ", phones=" + Arrays.toString(phones) +
                ", cities=" + cities +
                ", map=" + map +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getPhones() {
        return phones;
    }

    public void setPhones(String[] phones) {
        this.phones = phones;
    }

    public List getCities() {
        return cities;
    }

    public void setCities(List cities) {
        this.cities = cities;
    }

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public Person(String name, String[] phones, List cities, Map map) {
        this.name = name;
        this.phones = phones;
        this.cities = cities;
        this.map = map;
    }

    public Person() {
    }
}

<%@ page import="com.atguigu.pojo.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        Person person = new Person();
        person.setName("name111");
        person.setPhones(new String[]{"123", "456", "789"});

        List cities = new ArrayList();
        cities.add("beijin");
        cities.add("shanghai");
        cities.add("shenzheng");
        person.setCities(cities);

        Map map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
        person.setMap(map);

        pageContext.setAttribute("key_person", person);
    %>

    ${ key_person }



<%@ page import="com.atguigu.pojo.Person" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        Person person = new Person();
        person.setName("name111");
        person.setPhones(new String[]{"123", "456", "789"});

        List cities = new ArrayList();
        cities.add("beijin");
        cities.add("shanghai");
        cities.add("shenzheng");
        person.setCities(cities);

        Map map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
        person.setMap(map);

        pageContext.setAttribute("key_person", person);
    %>

    ${ key_person } 
${ key_person.name }
${ key_person.phones }
${ key_person.phones[1] }
${ key_person.cities }
${ key_person.cities[1] }
${ key_person.map }
${key_person.map[key2]}

注意EL表达式是不需要引入jstl.jar的注意到输出map是输出花括号包裹的键值对;输出List得到的是由[]包裹起来的;输出数组得到的是首地址通过实验,我们注意到 :EL表达式中,找的不是这个属性,而是找这个属性所对应的get方法 关系运算

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


    Title


    ${12 == 12} 或 ${12 eq 12} 

逻辑运算

算术运算

empty运算

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
//        1、值为null值的时候,为空
        request.setAttribute("key1", null); // true
        request.setAttribute("key2", new Object()); // false ,非空!

//        2、值为空串的时候,为空
        request.setAttribute("key3", ""); // true
        request.setAttribute("key4", " "); // false

//        3、值是Object类型数组,长度为零时为空
        request.setAttribute("key5", new Object[]{}); // true
        request.setAttribute("key6", new Object[]{"12"}); // false

//        4、list集合,元素个数为零
        List list = new ArrayList<>();
        request.setAttribute("key7", list); // true

//        5、map集合,元素个数为零
        Map map = new HashMap();
        request.setAttribute("key8", , map); // true
    %>

    ${ empty key1 }



三元运算


${ 12 == 12 ? "123" : "456" }

点运算和中括号运算

.点运算,可以输出bean对象中某个属性的值
[]中括号运算,可以输出有序集合中某个元素的值
并且中括号运算还可以输出map集合中 key 里含有特殊字符的key的值(比如. 和 逻辑运算符)

不要忘了引号,单引号或者双引号都可以 11个EL隐含对象

pageScope、requestScope、sessionScope、applicationScope演示

之前直接 ${ key1 } 是按四个域从小到大的顺序去搜索的如果使用比如 ${ applicationScope.key1 } 我们就可以选择性地去搜索了 pageContext演示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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