Day07JavaWeb [Jsp, el, jstl, caso completo] Expresión El ***

Descripción general de la expresión EL

  • (1) ¿Qué es la expresión EL? La expresión
    EL (lenguaje expreso) se puede incrustar dentro de la página jsp
  • (2) ¿Cuál es el significado de las expresiones EL? Es
    reemplazar la escritura de scripts de salida en páginas jsp y reducir la escritura de scripts jsp
  • (3) ¿Cómo escribir expresiones EL?
${EL表达式内容}
  • (4) El papel de la expresión EL:
    1. Encuentre los datos especificados del objeto de dominio.
    2. Uso de objetos integrados
    3. Operador de ejecución

Objeto de dominio

  • (1) JSP admite cuatro objetos de dominio de forma predeterminada:
HttpServletContext  application;   整个项目
HttpSession         session;       一次会话
HttpServletRequest  requst ;        一次请求
HttpPageContext     pageContext;     当前页面

(2) Método básico

setAttribute(键,值);
getAttribute();
removeAttribute();

web \ demo1_el.jsp


<%--四大域中存数据--%>
    <%
        application.setAttribute("name1", "baoqiang1");
        session.setAttribute("name1", "baoqiang2");
        request.setAttribute("name1", "baoqiang3");
        pageContext.setAttribute("name1", "baoqiang4");
    %>
    <%--方式1:从四大域中取数据--%>
    <%--这种方式,如果找不到对应的键,返回null--%>
    <%=application.getAttribute("name1")%>
    <%=session.getAttribute("name2")%>
    <%=request.getAttribute("name3")%>
    <%=pageContext.getAttribute("name4")%>
    <%--方式2:从四大域中取数据(EL表达式)--%>
    <hr/>
    <%--这种方式,如果找不到对应的键,返回空串--%>
    ${
    
    applicationScope.name1}
    ${
    
    sessionScope.name2}
    ${
    
    requestScope.name3}
    ${
    
    pageScope.name4}
    <hr/>
    <%--方式3:从四大域中取数据(EL表达式)--%>
    <%--这种方式,如果找不到对应的键,返回空串--%>
    <%--这种方式,会从作用范围最小的域开始找,所以每个域的键的名字不能重复--%>
    ${
    
    name1}
    ${
    
    name2}
    ${
    
    name3}
    ${
    
    name4}
  • Si la expresión el está escrita correctamente y no se ha ejecutado, puede abrir la función de expresión el de la página, porque está cerrada por defecto
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

Objeto de almacenamiento de expresión EL

  • (1) Definir la clase de usuario
  • (2) Definir la clase de cumpleaños
  • (3) Paquete de guía
  • (4) El código Java crea un objeto y almacena el objeto en el objeto de alcance
  • (5) Utilice expresiones el para eliminar objetos y acceder a los valores de las variables miembro

src \ pack01_java_bean \ Birthday.java

La clase javaBean a menudo se define en el proyecto, la esencia es el modelado

public class Birthday {
    
    
    private int year;
    private int month;
    private int day;
}

src \ pack01_java_bean \ User.java

public class User {
    
    
    private String name;
    private int age;
    private String gender;
    private Birthday birthday;
}

web \ demo2_el_object.jsp

Importar la clase a la página actual usando la directiva de página

<%@ page import="pack01_java_bean.User" %>
<%@ page import="pack01_java_bean.Birthday" %>

Después de importar, la página puede reconocer la clase y luego puede usar la clase para crear objetos.

     <%--向域中存储JavaBean对象--%>
    <%
        User user = new User("baoqiang",35,"male",new Birthday(1988,12,23));
        request.setAttribute("user", user);
    %>
    <%=((User)request.getAttribute("user")).getName()%>
    <%--使用EL表达式来简化--%>
    ${
    
    requestScope.user.name}
    ${
    
    user.name}
    ${
    
    requestScope.user.birthday.year}
    ${
    
    user.birthday.year}

Lista y mapa de recopilación de almacenamiento de expresión EL **

  • (1) Agregar varios objetos de usuario a la colección de
    listas Usar índice para recuperar objetos
  • (2) Agregue múltiples objetos de usuario a la colección de mapas.
    Use claves para obtener objetos

Importa la clase antes de usarla

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>

web \ demo3_el_list.jsp


  <%--向域中存储List集合对象--%>
    <%
        ArrayList<User> list = new ArrayList<User>();
        list.add(new User("baoqiang1",35,"male",new Birthday(1988,12,23)));
        list.add(new User("baoqiang2",35,"male",new Birthday(1989,12,23)));
        list.add(new User("baoqiang3",35,"male",new Birthday(1990,12,23)));

        request.setAttribute("key", list);
    %>
    <%--使用El来获取域中的数据--%>
    ${
    
    requestScope.key[0].name}
    <%=((ArrayList<User>)request.getAttribute("key")).get(0).getName()%>
    ${
    
    key[0].name}
    ${
    
    key[1].birthday.year}
  • Lista ordenada lista, usando acceso de índice, es esencialmente datos, así que use [índice]

web \ demo4_el_map.jsp

<%

        Map<String, User> map= new HashMap<String, User>();
        map.put("u1", new User("baoqiang1",35,"male",new Birthday(1988,12,23)));
        map.put("u2", new User("baoqiang2",35,"male",new Birthday(1999,12,23)));
        map.put("u3", new User("baoqiang3",35,"male",new Birthday(1900,12,23)));

        request.setAttribute("map", map);
    %>
    <%--使用El来获取域中的数据--%>
    <%=(( Map<String, User>)request.getAttribute("map")).get("u1").getName()%>
    ${
    
    requestScope.map.u1.name}
    ${
    
    map.u1.name}
    ${
    
    map.u3.birthday.month}

Operador de expresión EL **

  • (1) El operador de Java
    en ${}el operador puede escribir java, para calcular los datos se
    deben solicitar a los datos almacenados en el alcance, porque la ${}acción es tomar datos
  • (2) emptyPalabra clave
    No puede emptyescribir declaraciones if dentro para determinar si el objeto o el objeto de colección está vacío, por lo que debe usar emptypalabras clave.
  • La palabra clave vacía puede
    determinar el objeto, si la cadena está vacía, o
    determinar si el número de elementos en el conjunto es 0

web \ demo5_el_yunsuanfu.jsp


 <%--EL表达式的运算符--%>
    <%
        int num = 0;
        request.setAttribute("num", num);
    %>
    <%=num*10%>
    ${
    
    3+2}
    <%--El表达式使用的变量必须放在域中--%>
    ${
    
    num+1}
    <hr/>
    ${
    
    3>2}
    <hr/>
   <%--
     empty关键字
         String 类型:  空串和null都为空
         Java Bean对象:   null为空
         集合         :  集合中没有数据,则为空
   --%>
    <%
        String str = null;
        User user = null;
        ArrayList<String> list = new ArrayList<String>();
        list.add("hello");
        request.setAttribute("list", list);
    %>
    ${
    
    empty list}

Ruta de acceso al proyecto EL expression-get **

  • (1) Obtenga el nombre de la aplicación web en el Servlet:
    request.getContextPath();
  • (2) Obtenga el nombre de la aplicación web en la página jsp:${pageContext.request.contextPath}
  • (3) ¿Cuál es el punto? Obtenga la ruta de acceso al proyecto dinámicamente, si se modifica la ruta de acceso al proyecto, no afectará la modificación de la dirección en la página o Servlet
  • (4) pageContext-pageContext en el desarrollo WEB
  • (5) Obtenga los datos en el dominio de JSP(pageScope,requestScope,sessionScope,applicationScope)

Supongo que te gusta

Origin blog.csdn.net/u013621398/article/details/108561016
Recomendado
Clasificación