zoukankan      html  css  js  c++  java
  • Java基础82 jsp中的EL表达式(网页知识)

    1、EL表达式的作用

    EL表达式的作用:向浏览器输出域对象中的变量值或者表达式计算结果。
    语法:${变量或者表达式}

    注:

    Jsp的核心语法:jsp的表达式<%= %>和jsp的脚本<% %>。
    jsp的开发原则:尽量在jsp页面中少写甚至不写java代码,使用EL表达式替换掉jsp表达式。

    2、EL表达式的语法

    1) 输出基本的数据类型变量
      1.1从四个域中获取
            ${name}
      1.2指定域获取
            ${pageScope.name}
            域范围:pageScope/requestScope/sessionScope/applicationScope
    2) 输出对象的属性值
      ${Student.name}     注意:.name 相当于.getName()方法
    3)输出list集合
      ${list[0].name}     注意:[0] 相当于get(下标)方法
    4)输出map集合
      ${map[key].name}    注意:[key] 相当于get(key)方法

    3、实例

    例1:

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <html>
     4   <head>
     5     <title>EL表达式语法</title>
     6   </head>
     7   <body>
     8     <%
     9     String name="rose";
    10     //放入域对象中
    11     //pageContext.setAttribute("name",name);
    12     pageContext.setAttribute("name",name,PageContext.PAGE_SCOPE);
    13      %> 
    14     <%-- 打印到页面 --%>
    15      <%=name %>       
    16     <br/>
    17     
    18     <%--从四个域中自动搜索--%>
    19     jsp表达式:<%=pageContext.findAttribute("name")%>
    20     EL表达式:${name }
    21     <br/>
    22     
    23     <%-- 从指定域中获取数据 --%>
    24     EL表达式:${pageScope.name }
    25     <%--
    26     ${pageScope.name} 等同于 <%=pageContext.getAttribute("name",pageContext.PAGE_SCOPE)%>
    27      --%>
    28   </body>
    29 </html>

    例2

     1 <%@page import="com.bw.entity.Student"%>
     2 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     3 <%
     4 String path = request.getContextPath();
     5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     6 %>
     7 
     8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     9 <html>
    10   <head>
    11     <base href="<%=basePath%>">
    12     
    13     <title>EL输出不同类型的数据</title>
    14     
    15     <meta http-equiv="pragma" content="no-cache">
    16     <meta http-equiv="cache-control" content="no-cache">
    17     <meta http-equiv="expires" content="0">    
    18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    19     <meta http-equiv="description" content="This is my page">
    20     <!--
    21     <link rel="stylesheet" type="text/css" href="styles.css">
    22     -->
    23   </head>
    24   <body>
    25      <%-- 1)EL输出对象的属性 --%>
    26      <%
    27       //保存数据
    28       Student student=new Student("jack",20);
    29       //放入域中
    30       pageContext.setAttribute("student",student); 
    31     
    32       //list集合(保存数据)
    33       List<Student> list=new ArrayList<Student>();
    34       list.add(new Student("rose",18));
    35       list.add(new Student("LiLi",18));
    36       list.add(new Student("jingjing",20));
    37       //放入域中
    38       pageContext.setAttribute("list",list);
    39     
    40       //Map集合(保存数据)
    41       Map<String,Student> map=new HashMap<String,Student>();
    42       map.put("100", new Student("Mark",20));
    43       map.put("101", new Student("tian",30));
    44       map.put("102", new Student("ergouzi",21));
    45       //放入域中
    46       pageContext.setAttribute("map", map);
    47      %>
    48      
    49        <%--使用EL表达式获取对象 --%>
    50        ${list[0].name } - ${list[0].age }<br/>
    51        ${list[1].name } - ${list[1].age }<br/>
    52        ${list[2].name } - ${list[2].age }<br/>
    53        
    54        <%--
    55         list[0]等价于(中括号相对于调用了get(参数)方法)
    56            ((list)pageContext.findAttribute("list")).get(0)
    57        --%>
    58     <hr/>
    59     
    60     <%--使用EL获取Map对象--%>
    61     ${map['100'].name } - ${map['100'].age }<br/>
    62     ${map['101'].name } - ${map['101'].age }<br/>
    63     ${map['102'].name } - ${map['102'].age }<br/>
    64   </body>
    65 </html>

    实例结果图

    例3:

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>EL表达式计算</title>
    13     
    14     <meta http-equiv="pragma" content="no-cache">
    15     <meta http-equiv="cache-control" content="no-cache">
    16     <meta http-equiv="expires" content="0">    
    17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    18     <meta http-equiv="description" content="This is my page">
    19     <!--
    20     <link rel="stylesheet" type="text/css" href="styles.css">
    21     -->
    22 
    23   </head>
    24   
    25   <body>
    26     <%--
    27       1)算术的表达式
    28         +  -  *  /
    29     --%>
    30       加法运算:${10+5 }<br/>
    31       乘法运算:${10*5 }
    32       <hr/>
    33       
    34     <%--
    35       2)比较运算符
    36          >   <   >=    <=    ==   !=
    37     --%>
    38       ${10>5 }<br/>
    39       ${10<5 }<br/>
    40       ${10!=10 }<br/>
    41       <hr/> 
    42       
    43      <%--
    44       3)逻辑运算符
    45         &&   ||   !
    46     --%>
    47       ${true && true }<br/>
    48       ${true || false }<br/>
    49       ${!false }<br/>
    50       <hr/>
    51       
    52     <%--
    53       4)判断 
    54       null 或者 空字符串 :empty
    55     --%>
    56       <%
    57        String name="hello";
    58        pageContext.setAttribute("name",name);
    59       %>
    60         判断null: ${name==null }</br>
    61         判断空字符串: ${name=="" }</br>
    62         判断:${name==null || name=="" }<br/>
    63         另一种判断空的写法:${empty name }
    64    </body>
    65 </html>
    66     

    原创作者:DSHORE

    作者主页:http://www.cnblogs.com/dshore123/

    原文出自:https://www.cnblogs.com/dshore123/p/10163207.html

    欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

  • 相关阅读:
    读书笔记:你就是极客软件开发人员生存指南
    读书笔记:重来 Rework
    敏捷个人2012.1月份线下活动报道:谈谈职业
    敏捷个人2011.12月份线下活动报道:认识自我
    敏友的【敏捷个人】有感(12): 敏友们自发组织的线上思想的碰撞
    敏捷团队:我尽力先做好本职工作是否正确?
    OpenExpressApp:精通 WPF UI Virtualization
    MDSF:发布图形编辑器源码OpenGraphicEditor
    产品管理:用户访谈之道
    敏捷个人架构图
  • 原文地址:https://www.cnblogs.com/dshore123/p/10163207.html
Copyright © 2011-2022 走看看