zoukankan      html  css  js  c++  java
  • EL技术

    EL技术

    EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。

    EL从域中取出数据

    EL最主要的作用是获得四大域中的数据,格式${EL表达式}

    • EL获得pageContext域中的值:$(pageContextScope.key);
    • EL获得request域中的值:$(request.key);
    • EL获得session域中的值:$(session.key);
    • EL获得application域中的值:$(application.key);

    EL从四个域中获得某个值$(key);

    同样是依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找。

    示例:

    1、EL获得普通字符串

    2、EL获得User对象的值

    3、EL获得List<String>的值

    4、EL获得List<User>的值

    5、EL获得Map<String,String>的值

    6、EL获得Map<String,User>的值

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="com.itheima.domain.*" %>
    <%@ page import="java.util.*" %>
    <!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>
        <!-- 模拟域中的数据 -->
        <%
            pageContext.setAttribute("company", "阿里");
        
            //存储字符串
            request.setAttribute("company", "企鹅");
        
            //存储一个对象
            User user = new User();
            user.setId(1);
            user.setName("zhangsan");
            user.setPassword("123");
            session.setAttribute("user", user);
            
            //存储一个集合
            List<User> list = new ArrayList<User>();
            User user1 = new User();
            user1.setId(2);
            user1.setName("lisi");
            user1.setPassword("123");
            list.add(user1);
            User user2 = new User();
            user2.setId(3);
            user2.setName("wangwu");
            user2.setPassword("123");
            list.add(user2);
            application.setAttribute("list", list);
            
        %>
        
        
        <!-- 脚本法是取出域中的值 -->
        <%=request.getAttribute("company") %>
        <%
            User sessionUser = (User)session.getAttribute("user");
            out.write(sessionUser.getName());
        %>
        <hr/>
        <!-- 使用EL表达式获得域中的值 -->
        ${requestScope.company }
        ${sessionScope.user.name }
        ${applicationScope.list[1].name}
        
        <!-- 使用el表达式 全域查找 -->
        ${company }
        ${user.name }
        ${list[1].name}
        
        <!-- el可以执行表达式运算 -->
        ${1+1 }
        ${1==1?true:false }
        <!-- empty 判定某个对象是否是null  是null返回true -->
        ${empty list}
        
        
    </body>
    </html>

    EL的内置对象(九个)

    pageScope,requestScope,sessionScope,applicationScope;

    获取JSP中域中的数据

    接收参数:param,paramValues;

    获取请求头信息:header,headerValues;

    获取全局初始化参数:initParam;

    WEB开发中cookie:cookie;

    WEB开发中的pageContext:pageContext;

    例子:

    复制代码
    <!-- 获得表单的参数 -->
        <%
            request.getParameter("username");
        %>
        
        <!-- 使用el获得参数 -->
        ${param.username }
        ${header["User-Agent"] }
        ${initParam.aaa }
        ${cookie.name.value }    
    ${cookie.abc.value }
    <!-- 通过el表达式获得request对象 --> 
    ${pageContext.request }
    与${requestScope}不同,对象不仅包含域,而且还有其他数据和方法
    <!--获得WEB应用的名称-->
    $(pageContext.request.contextPath)相当于<%=pageContext.getRequest().getContextPath%>
    复制代码
     
  • 相关阅读:
    目录拷贝
    获取当前时间
    获取当前目录名称
    WPF 修改数据后更新UI
    外网访问FTP服务,解决只能以POST模式访问Filezilla的问题
    解决Postgresql服务启动又关闭的问题
    更换PostgreSql的data文件夹并重新服务器(此方法同样适用于系统崩溃后,找回数据的操作)
    C#一键显示及杀死占用端口号进程
    [WP8开发] WinJS中winControl或者itemDataSource值为null的解决方案
    [WP8开发] WebBrowser控件与后台代码.cs简单的交互
  • 原文地址:https://www.cnblogs.com/-lwl/p/11260651.html
Copyright © 2011-2022 走看看