【JavaWeb】EL表达式与JSTL标签

来源:互联网 发布:梁弯矩计算软件 编辑:程序博客网 时间:2024/06/05 05:11
EL表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。
示例:使用EL表达式获取request、session、applection域中的数据。
EL表达式中也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。
示例:使用EL表达式获取Bean属性。
结合JSTL标签,EL表达式也可轻松获取各种集合中的元素。
示例:使用EL表达式获取List、Map集合中的元素。

EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断。


JSTL是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
在页面中使用JSTL标签需完成以下2个步骤:

1、导入jstl.jar和standerd.jar这两个JSTL的jar文件。

2、在JSP页面中使用<%@tablib url=“”  prifix=“”%>元素导入标签库。

JSTL标签库中常用标签:

<c:foreach var=“”items=“”>

<c:if test=“”>


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="cn.itcast.domain.Person"%><%@page import="cn.itcast.domain.Address"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <title>el表达式</title>  </head>  <body>        <%     request.setAttribute("name","xxx");    %>        ${name1 }   <!-- pageContext.finaAttribute("name") page request session application -->            <br/>--------------el表达式可以很方便的获取bean的属性0-----------<br/>    <%     Person p = new Person();    p.setAge(12);    request.setAttribute("person",p);    %>    ${person.age }            <br/>--------------el表达式可以很方便的获取bean中的bean中的。。。。的属性-----------<br/>    <%     p = new Person();    p.setAddress(new Address());    request.setAttribute("person",p);    %>    ${person.address.city }        <br/>--------------el表达式可以很方便的获取集合中的数据-----------<br/>    <%     List list = new ArrayList();    list.add(new Person());    list.add("aaa");    request.setAttribute("list",list);    %>    ${list[0].age }    ${list[1] }         <br/>--------------el表达式可以很方便的获取map集合中的数据-----------<br/>    <%     Map map = new HashMap();    map.put("aa","xxx");    map.put("bb","yyyy");    map.put("cc","zzzzz");    map.put("1","11111");    request.setAttribute("map",map);    %>    ${map.aa }    ${map["1"] }            <br/>--------------其它的常用el表达式-----------<br/>    <a href="/test/1.jsp">点点</a>    <a href="${pageContext.request.contextPath }/1.jsp">点点</a>        <a href="${pageContext.request.contextPath }/1.jsp">点点</a>      </body></html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@page import="cn.itcast.domain.Person"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <title>jstl示例代码</title>  </head>    <body>     <br/>--------------使用jstl+el表达式迭代集合中的数据-----------<br/>    <%     List list = new ArrayList();    list.add(new Person("aaa"));    list.add(new Person("bbb"));    list.add(new Person("ccc"));    request.setAttribute("list",list);    %>        <c:forEach var="person" items="${list}">    ${person.name }    </c:forEach>             <br/>--------------使用jstl+el表达式迭代map集合中的数据-----------<br/>    <%     Map map = new HashMap();    map.put("aa","xxx");    map.put("bb","yyyy");    map.put("cc","zzzzz");    map.put("1","11111");    request.setAttribute("m",map);    %>        <c:forEach var="me" items="${m}">      ${me.key } = ${me.value }<br/>    </c:forEach>        <c:if test="${user!=null}">    欢迎您:${user.username }    </c:if>    <c:if test="${user==null}">    <form>    用户名    </form>    </c:if>              </body></html>