EL表达式 和 JSTL 标签库

来源:互联网 发布:专心软件怎么签到 编辑:程序博客网 时间:2024/05/21 06:23

el 表达式和jstl标签快速入门

el表达式:
1.el表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,
以标识符为关键字从各个域对象 中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是NULL)。
 示例:使用EL表达式获取page、 request、session、applection域中的数据。

 

2.EL表达式中也可以使用${customerBean.address}的形式来访问javaBean对象的属性。
   示例:使用EL表达式获取Bean属性。

3.结合JSTL标签,EL表达式也可轻松获取各种集合的元素。
  示例:使用EL表达式获取List、Map集合中的元素。


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

示例代码:

  <%---从EL表达式获取属性的值 --%>
               <%
                 String name = "aaaaaaaa";
                 request.setAttribute("name",name);
             
   %>

  ${name}
  <!--pageContext.findAttribute("name") page  request  session application-->
  <br />


  <%---从EL表达式获取对象的属性 --%>
  <%
         Person p = new Person();
         p.setName("zengxiansheng");
         request.setAttribute("p",p);

                %>
  ${p.name}
  <br />

  <%--复杂javaBean 中获取数据 --%>
  <%
         Person p1 = new Person();
         Address a = new Address();
         a.setCity("上海");
         p1.setAddress(a);
         request.setAttribute("p1",p1);

         %>
  ${p1.address.city }

  <br />

  <%
          List list = new ArrayList();
          list.add(new Person("aa"));
          list.add(new Person("bb"));
          list.add(new Person("cc"));
          request.setAttribute("list",list);

                %>
  ${list[1].name }
  <br />
  <%
             Map map = new HashMap();
             map.put("aa",new Person("aaaaaaa"));
             map.put("bb",new Person("bbbbbbb"));
             map.put("cc",new Person("ccccccc"));
             map.put("111",new Person("edddddd"));
             request.setAttribute("map",map);
          %>
          ${map.aa.name }
          ${map['111'].name }
 
<!-- 数字访问不用.用中括号括起来,要加单引或双引 -->
          <br />
           ${pageContext.request.contextPath }   <!--获取当前 web 应用的名称 :day1  -->

 

 jstl标签库:
   1.JSTL 是 sun 公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
   2.在页面中使用JSTL标签需要完成以下2个步骤。
      1.导入jstl.jar和standerd.jar这两个jslt的jar 文件。
      2.在JSP页面中使用<
%@taglib uri="" prefix="" %>元素导入标签库。
   3.JSTL标签库中常用标签:
          <c:foreach var ="单个对象名" items ="集合或数组名"></foreach>
          <c:if test="条件">
                              

  示例代码:
 <!--遍历 list 集合获取数据-->
          <%
          List list = new ArrayList();
          list.add(new Person("aa"));
          list.add(new Person("bb"));
          list.add(new Person("cc"));
          request.setAttribute("list",list);
         %>
 //遍历 list 集合
  
  <c:forEach var="Person" items="${list}">
           ${Person.name} <br/>
    </c:forEach>
  

 <!--遍历 Map 集合获取数据-->
  <%
            Map  map = new HashMap();
            map.put("aa",new Person("aaaaaaa"));
            map.put("bb",new Person("bbbbbbb"));
            map.put("cc",new Person("ccccccc"));
            map.put("111",new Person("edddddd"));
            request.setAttribute("map",map);
        %>
        <c:forEach var="entry" items="${map}">
               ${entry.key } : ${entry.value.name}<br/>
        </c:forEach>
       

 <!--判断用户是否登录 ,不为空就是登录 -->
        <c:if test="${user!=null}">
                            欢迎:${user.userName }登录!
        </c:if>
 <!--为空就是没登录登录 -->
        <c:if test="${user==null}">
                           用户名:<input type="text"/>
                           密码:<input type="text"/>
        </c:if>