zoukankan      html  css  js  c++  java
  • EL表达式(Expression Language)

    语法:

    ${Expression}

    来取代难以维护的Java脚本元素,或笨拙的jsp:useBean和jsp:getProperty;

    尤其重要的是,表达式语言支持下面的功能:

    1.精确地访问存储对象;

    要输出“作用域变量”(用setAttribute存储在PageCentext, HttpServletRequest,HttpSession或ServletCnntext中的对象)saleItem .我们使用${saleItem}。

    2.bean属性的简略记法;

    要输出作用域变量company的campanyName属性(即getCampanyName方法的结果),我们使用${company.companyName}。而要访问作用域变量company的president属性的firstName属性,我们使用${company.president.firstIVame}

    3对集合元素的简单访问;

    要访问数组、List或Map的元素,我们使用$ {variable[indexOrkey]}。如果索引或键所采用的形式可以满足合法java变量名的要求,则bean的点号记法可以和集合的括号记法互换。

    4对请求参数、cookie和其他请求数据的简单访问;

    如果要访问标准的请求数据,我们可以使用几个预定义隐式对象。

    5一组为数不多但有效的简单运算符;

    在EL表达式内操作对象时,可以使用任何算术、关系、逻辑或空值检查(empty-testing)运算符。

    6条件性输出;

    在进行有选择地输出时,我们可以不必借助于java脚本元素。取而代之,我们可以使用${test ? option1 : option2}来完成这一功能。


    7自动类型转换;
    表达式语言移除了大多数类型转换的需求,可以省略很多将字符串解析成数字的代码。


    8.空值取代错误消息。
    大多数情况下,没有相应的值或NullPointerExceptions异常都会导致空字符串的出现,而非抛出异常。

    示例:

    bean:

    package cn.donghaua.bean;

    public class Person {

    private String name;
    private int age;

    public Person(String name, int age) {
    this.name = name;
    this.age = age;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    }

    servlet:

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    Person p1 = new Person("zhangsan",25);
    Person p2 = new Person("zhaoliu",29);
    req.setAttribute("person1", p1);
    HttpSession session = req.getSession();
    session.setAttribute("person2", p2);
    RequestDispatcher disp = req.getRequestDispatcher("/WEB-INF/forward2.jsp");
    disp.forward(req, resp); }

    forward2.jsp

    <body>
    Resqust peson name:
    ${person1.name} <br>
    Resqust peson age:
    ${person1.age}<br>

    Session peson name:
    ${person2.name} <br>
    Session peson age:
    ${person2.age}<br>

    </body>

    访问输出结果:

    Resqust peson name: zhangsan
    Resqust peson age: 25
    Session peson name: zhaoliu
    Session peson age: 29

  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4778914.html
Copyright © 2011-2022 走看看