zoukankan      html  css  js  c++  java
  • EL

    EL 全名为 Expression Language,为方便存取数据所自定义的语言,可以在 JSP 网页中直接使用 EL .

    EL 主要的语法结构:
                  ${sessionScope.user.sex}
                  所有 EL 都是以 ${ 为起始、以} 为结尾的。

    EL 提供 . 和 [ ] 两种运算符来存取数据。

                  ${sessionScope.user.sex}
                  等于
                  ${sessionScope.user["sex"]

    ${username}。它的意思是取出某一范围中名称为 username的变量。

    因为我们并没有指定哪一个范围的 username,所以它的默认值会先从 Page 范围找,假如找不到,

    再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,

    不再继续找下去,但是假如全部的范围都没有找到时,就回传 null.

    自动转换

    ${param.count + 20}

    假若窗体传来 count 的值为 10 时,那么上面的结果为 30。

    EL 隐含对象总共有 11 个

    注意:

    Param.jsp 主要使用 EL 的隐含对象 param来接收数据。

    但是必须注意:假若要取得多重选择的复选框的值时,必须使用 paramValues,

    例如:使用 paramValues 来取得“兴趣”的值

               兴趣: ${paramValues.habit[0]}
                           ${paramValues.habit[1]}

     

    假若我们在 cookie 中
    设定一个名称为 userCountry 的值,那么可以使用${cookie.userCountry}来取得它。

    initParam就像其他属性一样,我们可以自行设定 web 站台的环境参数(Context),

    当我们想取得这些参数时,可以使用 initParam 隐含对象去取得它,

    例如:

    <context-param>
    <param-name>userid</param-name>
    <param-value>mike</param-value>
    </context-param>

    直接使用 ${initParam.userid}来取得名称为 userid,其值为 mike 的参数。

    ${pageContext}来取得其他有关用户要求或页面的详细信息

    ${pageContext.request.contextPath} 服务的 web application 的名称

    Empty 运算符
    Empty 运算符主要用来判断值是否为 null 或空的,

    例如:
    ${ empty param.name }
    empty 可以作用于一个集合,若该集合不存在或集合中没有元素, 其结果都为 true

    条 件 运算符:${ A ? B : C}

    代码说明

    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@page import="com.aff.javaweb.Customer"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
        <!-- 7. EL 的运算符 -->
        ${param.score > 60 ? "及格" : "不及格" }
        <br>
        
        <% 
            List<String> names = new ArrayList<String>();
            names.add("abc");
            request.setAttribute("names", names);
        %>
        <!-- empty 可以作用于一个集合, 若该集合不存在或集合中没有元素, 其结果都为 true -->
        names is empty: ${empty requestScope.names }
        <br>
        
        <!-- 6. 其他隐含对象: pageContext 等(cookie, header, initParam 只需了解.) -->
        pageContext: pageContext 即为 PageContext 类型, 但只能读取属性就可以一直的 . 下去。 
        <br>
        contextPath: ${pageContext.request.contextPath }
        
        <br>
        sessionId: ${pageContext.session.id }
        
        <br>
        sessionAttributeNames: ${pageContext.session.attributeNames }
        
        <br>
        
        
        initParam: ${initParam.initName }
        <br>
        
        Accept-Language: ${header["Accept-Language"] }
        <br>
    
        JSESSIONID: ${cookie.JSESSIONID.name } -- ${cookie.JSESSIONID.value }
        <br>
    
        <!-- 5. 与输入有关的隐含对象: param, paramValues -->
        score: ${param.score }
        <%-- 
        <%= request.getParameter("score") %>
        --%>
        <br>
        names: ${paramValues.name[0].class.name }
        <%-- 
        <%= 
            request.getParameterValues("name")[0].getClass().getName()
        %>
        --%>
        <br>
        
        <!-- 4. 隐含对象之与范围相关的: pageScope, requestScope, sessionScope, applicationScope -->
        time: ${applicationScope.time.time }
        <%-- 
        <%= application.getAttribute("time") %>
        --%>
        <br>
        
        <!-- 3. EL 可以进行自动的类型转换 -->
        score: ${param.score + 11}
        <br>
        score: <%= request.getParameter("score") + 11 %>
        <br>
        
        <!-- 2. EL 中的隐含对象 -->
        <% 
            Customer cust2 = new Customer();
            cust2.setAge(28);
            request.setAttribute("customer", cust2);
        %>
        
        age: ${customer.age } 
    
        <br>
        <!-- 1. EL 的 . 或 [] 运算符 -->
        age: ${sessionScope.customer["age"] }
        
        <%-- 
            Customer customer = (Customer)session.getAttribute("customer");
            out.print(customer.getAge());
        --%>
        
        <% 
            Customer customer = new Customer();
            customer.setName("HXL");    
        
            session.setAttribute("com.aff.customer", customer);
        %>
        
        <br>
        <!--  
            如果域对象中的属性名带有特殊字符, 则使用 [] 运算符会很方便. 
        -->
        name: ${sessionScope["com.aff.customer"].name }
        
    </body>
    </html>
    All that work will definitely pay off
  • 相关阅读:
    easyui多选与接收不一致解决方案
    PEP8规范总结
    python2与python3的区别
    双下方法(魔术方法内置方法)
    文件操作
    抽象类,接口类,归一化设计,多态,鸭子类型
    html
    数据库的初识
    boby标签中相关标签
    爬虫介绍
  • 原文地址:https://www.cnblogs.com/afangfang/p/12754857.html
Copyright © 2011-2022 走看看