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
  • 相关阅读:
    JeePlus:代码生成器
    JeePlus:API工具
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
  • 原文地址:https://www.cnblogs.com/afangfang/p/12754857.html
Copyright © 2011-2022 走看看