欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)

程序员文章站 2022-04-15 18:32:26
一、el表达式获取jsp域对象jsp和html都要在web目录下写<%@ page contentType="text/html;charset=UTF-8" language="java" %> el获取域中的数据<% //在域中存储数据 session.setAttribute("name",...

一、el表达式获取jsp域对象

el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)
el是用{}而不是()
el表达式只能从域对象中获取值

jsp和html都要在web目录下写

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>el获取域中的数据</title>
</head>
<body>


<%
    //在域中存储数据
    session.setAttribute("name","李四");
    request.setAttribute("name","张三");
    session.setAttribute("age","19");
%>

<h3>el获取值</h3><br>
${requestScope.name}<br>
${sessionScope.age}<br>

${sessionScope.hahha}<%--没有这个值也不会报错,所以不用判断null了,比之前的方便--%>


${name}<%--这里的name同名了会输出张三(因为第二种方法从小到大找,找到为止)--%>
</body>
</html>

这里我的虚拟目录为/,但我在web建了个el目录,所以浏览器要加上el才能访问:

el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)
el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)
这样获取值可代替:直接用${requestScope.cc_error}替换就行,自动判断空的,空就不输出,方便

<div><%=request.getAttribute("cc_error")==null?"":request.getAttribute("cc_error")%></div>
<div><%=request.getAttribute("login_error")==null?"":request.getAttribute("login_error")%></div>

二、获取对象、List集合、Map集合的值

  1. 获取对象:${域名称.键名.属性名}
  • 本质上会去调用对象的getter方法
  1. List集合:${域名称.键名[索引]}
  2. Map集合:
  • 第一种方法: ${域名称.键名.key名称}
  • 第二种方法: ${域名称.键名[“key名称”]}el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)
    新建User类:
package it.cast;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author QLBF
 * @version 1.0
 * @date 2020/11/27 12:38
 */
public class User {
    private String name;
    private int age;
    private Date birthday;

    public String getBirStr(){
        /**
         *  逻辑视图
         * @description:因为el获取的日期是美国的,我们要转为年月日的
         * @param: * @param:
         * @return: java.lang.String
         * @author QLBF
         * @date: 2020/11/27 12:40
         */
        if (birthday!=null){
            //1.格式化日期对象
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            //2.返回字符串即可
            return sdf.format(birthday);

        }else {
            return "";
        }
    }

    public User() {
    }

    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;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

c.jsp:

<%@ page import="it.cast.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>T获取对象、List集合、Map集合的值itle</title>
</head>
<body>

<%
    /*设置User类*/
    User user=new User();
    user.setName("张三");
    user.setAge(18);
    user.setBirthday(new Date());
    //下面的user是上面的user对象传过去
    request.setAttribute("u",user);

    //设置list
    List list=new ArrayList();
    list.add("aaa");
    list.add("bbb");
    //可以存对象
    list.add(user);
    request.setAttribute("list",list);

    //设置map
    Map map=new HashMap<>();
    map.put("sname","李四");
    map.put("gender","男");
    map.put("user",user);
    request.setAttribute("map",map);

%>

<h3>1.el获取对象中的值,是根据上面request.setAttribute的键来获取</h3>
${requestScope.u}<br> <%--输出传输的user对象的地址值--%>
<%--
    * 通过的是对象的属性来获取
        * setter或getter方法,去掉set或get,在将剩余部分,首字母变为小写。
        * setName --> Name --> name
--%>
${requestScope.u.name}<br><%--获取user对象的getName方法--%>
${u.age}<br>
${u.birthday}<br>
${u.birStr}<br><%--获取user对象的getbirStr方法--%>



<h3>2.el获取List值</h3>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[2]}<br>
${list[12]}<br><%--越界也不会报错,不输出而已--%>
${list[2].name}<br>

<h3>el获取Map值</h3>
${map.gender}<br>
${map["gender"]}<br><%--[]后引号不能省--%>
${map.user.name}<br>

</body>
</html>

el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)

本文地址:https://blog.csdn.net/QLBFA/article/details/110224543

相关标签: java_web