EL和JSTL(1)

##首先看一张图:比较一下EL、JSTL和JSP的对应关系

QQ截图20190226122512

案例:

流程图

    QQ截图20190226122512

EL表达式的作用:

- 访问Bean的属性

- 支持运算

- 获取请求参数值

package entity;

import java.io.Serializable;

public class Course implements Serializable {
    //对象的属性
    private Integer courseId;
    private String name;
    private Integer days;
    
    public Integer getId() {
        return courseId;
    }
    public void setId(Integer courseId) {
        this.courseId = courseId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getDays() {
        return days;
    }
    public void setDays(Integer days) {
        this.days = days;
    }
}
package entity;

import java.io.Serializable;

public class Student implements Serializable {
    private String name;
    private Integer age;
    private String sex;
    private String[] interests;
    private Course course;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String[] getInterests() {
        return interests;
    }
    public void setInterests(String[] interests) {
        this.interests = interests;
    }
    public Course getCourse() {
        return course;
    }
    public void setCourse(Course course) {
        this.course = course;
    }
}
<%@ page pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>EL/JSTL</title>
</head>
<body>
    <h1>EL</h1>
    <!-- 1.获取Bean属性 -->
    <!-- request.getAttribute("messages").getName() -->
    <p>姓名:${messages.name}</p>
    <!-- request.getAttribute("messages").getAge() -->
    <p>年龄:${messages["age"]}</p>
    <!-- request.getAttribute("messages").getCourse().getId() -->
    <p>课程:${messages.course.id}</p>
    <!-- EL的取值范围: -->
    <!-- 1).EL默认从如下4个对象中依次取值
            page,request,session,applicate
         2).也可以指定取值范围
            requestScope.messages.name
            sessionScope.messages.name -->
    <p>性别:${sessionScope.messages.sex }${requestScope.messages.sex }</p>
    <!-- 2.支持运算 -->
    <p>年龄+5:${messages.age+5 }</p>
    <p>年20-30间:${messages.age>20 && messages.age<30 }</p>
    <p>判空:${empty messages }</p>
    <!-- 3.获取请求参数 -->
    <p>参数:${param.user }</p>
</body>
</html>
package web;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import entity.Course;
import entity.Student;

public class FindStudentServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //1.获取参数
        //2.处理业务
        Student stu = new Student();
        stu.setName("张三");
        stu.setAge(18);
        stu.setSex("男");
        stu.setInterests(new String[] {"琴","棋","书","画"});
        Course c =  new Course();
        c.setId(1);
        c.setName("java");
        c.setDays(80);
        stu.setCourse(c);
        System.out.println("dd");
        //3.转发或重定向
        req.setAttribute("messages", stu);
        req.getRequestDispatcher("find_student.jsp").forward(req, res);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>jsp3</display-name>  
  <servlet>
      <servlet-name>findStudent</servlet-name>
      <servlet-class>web.FindStudentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>findStudent</servlet-name>
      <url-pattern>/findStudent</url-pattern>
  </servlet-mapping>
</web-app>
原文地址:https://www.cnblogs.com/menbozg/p/10436549.html