JSP--EL表达式

EL表达式

1、EL概述和基本语法

要简化jsp中java代码开发。
它不是一种开发语言,是jsp中获取数据的一种规范

<body>
       <%
         Student stu = (Student) request.getAttribute("s");
         out.print(stu.getName());
       %>
        ${s.name}
</body>

2.EL的具体功能

a.获取数据

EL表达式只能获取四个作用域里面的数据
2.1 ${u} 原理: pageContext.findAttribute(“u”);
EL获取对于null这样的数据,在页面中表现为空字符串
2.2 ${u.name} == u.getName()方法
点(.) 运算符相当于调了getter方法,点后面跟的是属性名。

2.3 属性导航

思路:
${s.city.address}
s.city==>s.getCity() 即return city
s.city.address==>于是接着下来获取city.getAddress()
案例代码:
Student.java

package com.jsp.el;

public class Student {
    private String name ;
    private int age ;
     //必须要new一个对象,不然只是引用,其指向为空
    private City city=new City();

    public City getCity() {
        return city;
    }

    public void setCity(City city) {
        this.city = city;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

City.java

package com.jsp.el;

public class City {
    private String address="泗洪";

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

el1.jsp

 <%
        Student student = new Student();
        student.setName("tom");
        request.setAttribute("s",student);
        request.getRequestDispatcher("/el2.jsp").forward(request,response);
    %>

el2.jsp

 <%
         Student stu = (Student) request.getAttribute("s");
         out.print(stu.getName());
       %>
        ${s.city.address}

2.4 list和map数据取值

el3.jsp

<body>
    <%
        List list = new ArrayList();
        list.add("aaaa");
        list.add("bbb");
        list.add("vvvvv");
        request.setAttribute("list",list);
        Map map = new HashMap();
        map.put("a","aaaaaaaaaaa");
        map.put("b","bbbbbbbbbb");
        map.put("c","vsdsfsfsfs");
        request.setAttribute("map",map);
    %>
    ${list}<br/>
    ${list[1]}<br/>
    ${map}<br/>
    ${map.a}<br/>
    ${map["a"]}
</body>

结果如下:
这里写图片描述

2.5运算符

2.5.1empty

判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true
案例代码:

<body>
    <%
        //empty
        //判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true
        String str1 = null;
        request.setAttribute("str1",str1);
        String str2 = "";
        request.setAttribute("str2",str2);
        String str3 = "abc";
        request.setAttribute("str3",str3);
        List list1 = new ArrayList();
        request.setAttribute("list1",list1);
        List list2 = new ArrayList();
        list2.add("a");
        request.setAttribute("list2",list2);
    %>

    ${empty str1}<br/>     //ture
    ${empty str2}<br/>     //ture
    ${empty str3} <br/>   //false
    ${empty list1}<br/>      //ture
    ${empty list2}<br/>    //false

</body>

2.5.2 三元运算

判断购物车中是否有物品:

 ${empty list2?"您还没购买过商品":"您的商品有:"}

从数据库中拿出值来判断是男是女:

<%

        //从数据库中拿到是男生还是女生
        int sex = 0;
        request.setAttribute("s",sex);
    %>

  //通过三元运算 直接选中是男是女
    ${s==1?"1":"0"}
 <input type="radio" name="sex" ${s==1?"checked='checked'":""}/>男
  <input type="radio" name="sex" ${s==0?"checked='checked'":""}/>女

el中11个隐式对象

这里写图片描述
其中只有pageContext是对象
pageScope、requestScope、sessionScope、applicationScope都是Map对象

pageContext可以获取其他三大域对象
例:${pageContext.request.getContextPath}

cookie可以获取到sessionID
例:${cookie.JSESSIONID.value}

总结:

el表达式就是从四大域中拿数据

    原理:

    ${u}==>pageContext.findAttribute("u");
${u.name}==>u.getName
原理点(.)相当于getter()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值