EL表达式

EL表达式简介

l EL 全名为Expression LanguageEL主要作用:

获取数据:

   EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web 中检索java对象、获取数据。(某个web 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

l  使用EL表达式获取数据语法:“${标识符}”

l  EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从pagerequestsessionapplication四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)

El表达式获取数据实例代码

<br>使用el表达式获取javabean对象--------------------------------------------------

<jsp:useBean id="p" class="com.itheima.day06.util.Person">jsp:useBean>

${p.name }

<br>使用el表达式获取list集合--------------------------------------------------

<%

 List list=new ArrayList();

list.add("aa");

list.add("bb");

request.setAttribute("list", list);

%>

 

${list[1] }

<br>使用el表达式获取map集合--------------------------------------------------

<%

Map map=new HashMap();

map.put("one", "oneone");

map.put("two", "twotwo");

request.setAttribute("map", map);

%>

${map.two }

<br>使用el表达式获取复杂对象-------------------------------------------------

<%

Address address=new Address();

address.setCity("滨州");

address.setProvince("山东");

p.setAddress(address);

%>

${p.address.city }

执行运算

l  empty运算符:检查对象是否为null或“空”,很好用!!!

l  二元表达式:${user!=null?user.name : “”} 很好用!!!

l  <br>使用el表达式判断对象是否为空

l  ${empty p } 如果为空,则打印false

l  <br>二元表达式。也就是三目运算符  意思 如果p.name不等于空为真,则打印p.name否则打印ddd

l  ${p.name!=null?p.name:"dddd"}

EL表达式11大隐式对象

1.pageContext    对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)

2.pageScope   代表page域中用于保存属性的Map对象

3. requestScope   代表requset域中用于保存属性的Map对象

4. sessionScope    代表Session域中用于保存属性的Map对象

 

5.applicationScope  代表application域中用于保存属性的Map对象

6. param   表示一个保存了所有请求参数的Map对象

7. paramValues  表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]

8. header  表示一个保存了所有http请求头字段的Map对象

9. headerValues  同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

10. cookie   表示一个保存了所有cookieMap对象

11. initParam   表示一个保存了所有web应用初始化参数的map对象

测试各个隐式对象

注意事项

测试headerValues时,如果头里面有“- ,例Accept-Encoding,则要headerValues[Accept-Encoding]

测试cookie时,例${cookie.key}取的是cookie对象,如访问cookie的名称和值,须${cookie.key.name}${cookie.key.value}

案例应用

1.     提交表单到Servlet时的绝对路径可以使用el表达式来实现。

例子:

2.     想要某个性别或者爱好被默认选中时,也可以使用el表达式。

实例:

<%

         pageContext.setAttribute("gender","1");

         pageContext.setAttribute("p","BJ");

          %>

          性别:

            ':'' }/>

          

          

          故乡:

          

  JstlEL表达式简单入门

1.     导入jar  standard.jarjstl.jar

2.     在页面中引入。<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

1.使用eljstl进行遍历list集合。

<%

List list=new ArrayList();

list.add(new Person(1,"d"));

list.add(new Person(2,"a"));

list.add(new Person(3,"d"));

request.setAttribute("list", list);

%>

${list.num }:${list.name }

Iteams指的是要迭代那个对象。Var是一个变量,是用该变量进行迭代此对象。

2.使用el表达式和jstl来迭代map集合

<%

Map map=new HashMap();

map.put("1",new Person(1,"d") );

map.put("2",new Person(2,"a") );

map.put("3",new Person(3,"e") );

request.setAttribute("map", map);

%>

${map.key }=======${map.value.num }

3.     使用-----c:if-----------------进行判断

C:if就相当于java代码中的if

      <%

session.setAttribute("user", "jiange");

%>

 

<c:if test="${sessionScope.user==null }">

请登录

c:if>

<c:if test="${sessionScope.user!=null }">

欢迎你${sessionScope.user }

c:if>

test后面的值必需是boolean类型的!

 

你可能感兴趣的:(JavaWeb)