EL表达式的学习

今天上午学习了EL表达式,接下来总结一下关于jsp中运用el表达式的例子,el表达式可以在jsp中取代一些java代码,但不能够取代一些for循环等。
EL表达式:表达式语言,主要是用来取域中的数据。
1. 出现的目的:(1)在jsp中不建议书写java代码(2)传统方式取数据,都需要强转
2.语法规则:${数据名称}
3.EL表达式取数据的顺序:pageContext–>request–>session–>application
4.开发步骤:i.第一步:开启el表达式
在这里插入图片描述
ii第二步:书写el代码
5.通过el表达式取简单数据类型
6.通过el表达式取对象中的数据
在这里插入图片描述
7.通过el表达式取Map集合
8.通过el表达式取List集合

1、User.java 运用javabean来写的

package cn.java.entity;

import java.util.Date;

/**
 * Description: <br/>
 * Date: 2017年7月24日 上午11:13:50 <br/>
 * 
 * @author dingP
 * @version
 * @see
 */
public class User {
    private String username;

    private Integer age;// --->getAge() setAge()

    private Date date;

    public User() {

        super();
        // Auto-generated constructor stub

    }

    public User(String username, Integer age, Date date) {
        super();
        this.username = username;
        this.age = age;
        this.date = date;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

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

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "User [username=" + username + ", age=" + age + ", date=" + date + "]";
    }
}

2、ELServlet.java
(1)创建一个对象
(2) 将对象保存到request域中
(3)跳转到demo2.jsp request.getRequestDispatcher("/pages/test/demo2.jsp").forward(request, response);

package cn.java.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 javax.servlet.http.HttpSession;

import cn.java.entity.User;

/**
 * Servlet implementation class SessionServlet
 */
@WebServlet("/ELServlet")
public class ELServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1、创建一个对象
        User user = new User("王二麻子", 20, new Date());
        // 2、将对象保存到request域中
        request.setAttribute("u", user);
        HttpSession session = request.getSession();
        session.setAttribute("u", "admin");
        // 首先创建一个HashMap
        Map<String, Object> hm = new HashMap<String, Object>();
        hm.put("username", "lisi");
        hm.put("gender", "男");
        hm.put("age", 12);
        hm.put("1234", "abcd");

        Map<String, Object> hm2 = new HashMap<String, Object>();
        hm2.put("username", "zhangsan");
        hm2.put("gender", "男");
        hm2.put("age", 12);
        hm2.put("1234", "abcd");
        // list集合
        List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
        lists.add(hm);
        lists.add(hm2);
        request.setAttribute("list", lists);
        // 3、跳转到demo2.jsp
        request.getRequestDispatcher("/pages/test/demo2.jsp").forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException {
        doGet(request, response);
    }
}

3、demo2.jsp(运用el表达式访问ELServlet中的数据)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" isELIgnored="false"%>
<%
	String context = request.getContextPath();// /dt41_javaweb2
	String path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+context+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=path %>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>通过el表达式获取数据</title>
</head>
<body>
	<!-- 通过el表达式获取对象数据类型 -->
	<%-- ${u.username } --%><!-- ===>request.getAttribute("u") -->
	
	<!-- 获取指定域中的数据 -->
	<%-- ${sessionScope.u } --%>
	
	<!-- 通过EL取HashMap集合中的数据 -->
	<h1>${requestScope.hm.username }</h1>
	<!-- 当key值的类型为数值类型的字符串时,不能够通过以下方式获取 -->
	<%-- <h1>${requestScope.hm.1234 }</h1> --%>
	<h1>${requestScope.hm['1234'] }</h1>
	
	<!--  获取list集合中的数据-->
	<h1>${list[0].username }</h1>
	<h1>${list[1].username }</h1>
	
	<!-- 算术运算 -->
	<h1>${2*3 }</h1>
	
	<!-- 关系运算 -->
	<h1>${2>3 }</h1>
	<h1>${2==2 }</h1>
	
	<!-- 逻辑运算 && || ! -->
	<h1>${2<3 && 10>20 }</h1>
	<h1>${2<3 || 10>20 }</h1>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值