Java Web之EL

<%--
  Created by IntelliJ IDEA.
  User: Vae
  Date: 2019/1/2
  Time: 12:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<p>许嵩许嵩</p>

<%
    //JSP的四大作用域
    pageContext.setAttribute("msg","pageContext");
    request.setAttribute("msg","request");
    session.setAttribute("msg","session");
    application.setAttribute("msg","application");
%>

<h3>获取每一个作用域中的值</h3>
pageContext:<%=pageContext.getAttribute("msg")%><br>
request:<%=request.getAttribute("msg")%><br>
session:<%=session.getAttribute("msg")%><br>
application:<%=application.getAttribute("msg")%><br>

<hr>
<h3>pageContext的findAttribute方法(只有pageContext才有)</h3>
<%=pageContext.findAttribute("msg")%><br>
<%=pageContext.findAttribute("msg")==null?"":pageContext.findAttribute("msg")%><br>
${msg}<br>

</body>
</html>

 

EL  ${msg} 是从作用域从小往大找的,也可以设置为只从某个作用域查询

<!--EL的四大作用域对象-->
${pageScope.msg}<br>
${requestScope.msg}<br>
${sessionScope.msg}<br>
${applicationScope.msg}<br>

EL获取Java Bean数据

新建一个包,新建一个Servlet类和Person类

package main.com.vae.EL;

import lombok.Getter;
import lombok.Setter;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Setter@Getter
public class Person {
    private String name="许嵩";
    private Integer age=32;
    private String[] hobbys={"音乐","遛狗","D"};
    private List<String> list=Arrays.asList("list1","list2");
    private Map<String,Object> map=new HashMap<String,Object>(){
        {
            this.put("6","青年晚报");
            this.put("7","寻宝游戏");
            this.put("www.vae.com","Vae+");
        }
    };

}
package main.com.vae.EL;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/el")
public class ELServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Person person=new Person();
        req.setAttribute("person",person);
        req.getRequestDispatcher("/jspDemo/EL/el.jsp").forward(req,resp);
    }
}

再建一个jsp叫el

<%--
  Created by IntelliJ IDEA.
  User: Vae
  Date: 2019/1/9
  Time: 13:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>Person对象的信息</h3><br>
name:${person.name}-->${person.getName()}-->${person["name"]}<br>
age:${person.age}<br>
hobbys:${person.hobbys[0]}-->${person.hobbys[1]}<br>
list:${person.list[0]}-->${person.list[1]}<br>
map:${person.map["6"]}-->${person.map["www.vae.com"]}<br>

</body>
</html>

 结果:

像map里面的 www.vae.com 这个显然就不能使用 person.map.www.vae.com来调用了,不认识的,只能使用[""]来调用了。

原文地址:https://www.cnblogs.com/yunquan/p/10241753.html