el表达式

EL表达式和JSTL标签快速入门:
  EL表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。

示例:使用EL表达式获取request、session、applection域中的数据。
EL表达式中也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。
示例:使用EL表达式获取Bean属性。
结合JSTL标签,EL表达式也可轻松获取各种集合中的元素。
示例:使用EL表达式获取List、Map集合中的元素。
EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断。

el语法:[]和.访问数据
算数符:+-*/%
关系运算
逻辑运算
条件运算

隐含对象:11

pageContext--当前页面的javax.servlet.jsp.PageContext对象,利用pageContext可以访问ServletContext,Request,Response和Session对象

pageScope--类型是java.util.Map获取页面范围内所有属性的值

requestScope--类型是java.util.Map获取页面范围内所有属性的值


sessionScope--类型是java.util.Map获取页面范围内所有属性的值

applicationScope--类型是java.util.Map获取页面范围内所有属性的值

param--类型是java.util.Map获取请求中得参数的值

paramValues--类型是java.util.Map用于获取请求中得参数值的String类型的数组进行映射。获取请求中得参数的值。

header--类型是java.util.Map,HTTP请求头部,字符串。等同于ServletRequest.getHeader(String name)。对于包含连字符(-)或其他一些特殊字符的字符串只能用[]操作符。

headerValue--类型是java.util.Map获取请求报头的值

cookie--类型是java.util.Map获取Cookie对象,等同于HttpServletRequest.getCookies(),然后从返回的Cookie数组中找到匹配名字的第一个Cookie对象。

initParam--类型是java.util.Map获取web应用程序初始化
参数的值,等同于调用ServletContext.getInitParameter(String name)

 

 

Address.java
public class Address {
    private String name = "aaaa";

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
Person.java
public class Person {
    private String name;
    private String password;
    private Date birthday;
    private int age;
    private Address addr;
    //这里面有6个属性(name,password,class,address,birthday,age),从object里面继承了一个getClass属性。    
    
    public void setBirthday(Date birthday){
        this.birthday = birthday;
    }
    
    public Date getBirthday(){
        return birthday;
    }

    
    public void setAge(int age){
        this.age = age;
    }
    
    public int getAge(){
        return age;
    }
    
    public void setName(String name){
        this.name= name;
        
    }
    
    public String getName(){
        return name;
    }
    
    public void setPassword(String password){
        this.password= password;
        
    }
    
    public String getPassword(){
        return password;
    }

    public Address getAddress() {
        return addr;
    }

    public void setAddr(Address addr) {
        this.addr = addr;
    }
}
l:取值的情况:
<body>
 <% 
        request.setAttribute("name","aaa");
    %>
    
    <!-- 相当于:pageContext.findAttribute("name")  依次在这里面找 page request session application-->
    ${name } 
    
   
    <!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->
    <% 
        Person p = new Person();
        p.setAge(12);
        request.setAttribute("person",p);
    %>
    ${person.age }
    

    
    <!-- 在jsp页面中,使用el表达式可以获取bean中的。。。。。。。。。的属性 -->
    <% 
        Person person = new Person();
        Address address = new Address();
        person.setAddress(address);
        
        request.setAttribute("person",person);
    %>
    ${person.address.name }
    
    
    <!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->
    <% 
        Person p1 = new Person();
        p1.setName("aa111");
        
        Person p2 = new Person();
        p2.setName("bb");
        
        List list = new ArrayList();
        list.add(p1);
        list.add(p2);
        
        request.setAttribute("list",list);
    %>
    
    ${list[0].name }
    
    
    <!-- 在jsp页面中,使用el表达式获取map集合的数据 -->
    
    <% 
        Map map = new HashMap();
        map.put("a","aaaaxxx");
        map.put("b","bbbb");
        map.put("c","cccc");
        
        map.put("1","aaaa1111");
        
        request.setAttribute("map",map);
    %>
    
    ${map.c }  <!-- 根据关键字取map集合的数据 -->
    ${map["1"] }
    <c:forEach var="me" items="${map}">
        ${me.key }=${me.value }<br/>
    </c:forEach>
  
    <!-- 利用el表达式获取web应用的名称 -->
    <a href="${pageContext.request.contextPath }/1.jsp">点点</a>
    
    <!-- 注意:如果访问bean不存在的属性,会抛 Property 'username' not found on type cn.itcast.Person -->
    <%-- ${person.username }--%>
</body>

 

posted @ 2015-03-31 15:27  肉球  阅读(214)  评论(0编辑  收藏  举报