EL与JSPL

Posted zeng1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL与JSPL相关的知识,希望对你有一定的参考价值。

一、EL

  EL语法:

    EL表达式(Expression Language)

      $EL表达式    例:$name

   EL操作符:

      "." : 获取对象的属性,例:$user.name

      "[ ]" :1、 获取对象的属性,例:$user[name]

         2、获取集合中的对象,例如:$list[0]

  EL运算符:

      技术图片

 

 

   关系运算符:

      技术图片

 

 

 

   EL的功能:

    1、获取javaBean对象的属性

      例:$user.name

    2、取得数组、list、map类型对象的元素

      例:$list[0]

    3、使用各类运算符对原始数据进行简单的处理   

     例:
       request.setAttribute("num1",10);
       request.setAttribute("num2",5);
       $num1/num2
     结果为:2.0
       注:不能写成$num1/$num2,运算符号需放在大括号里面

    4、屏蔽一些常见的异常

      例:$user.name    即使user为空,也不会出现异常,但是什么信息都没显示

    5、能实现简单的自动类型转换

      例:$user相当与 (User)request.getAttribute("news");

    

  EL访问作用域:

      request.setAttribute("user",user);
      有两种取出方式
        1、使用java代码
          <%User user = (User)request.getAttribute("user");%>
        2、使用EL表达式
          $user  或  $requestScope.user

      技术图片

 

 

 

二、JSTL(JavaServerPages Standard Tag Library)

      JSP标准标签库

      实现JSP页面中的逻辑控制

  JSTL使用步骤:

    1、下载jstl.jar和standard.jar包

      下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

     2、将这两个包复制到WEB-INF/lib目录下

     3、在jsp页面中添加如下指令

      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

     如图:

        技术图片

 

 

 

  JSTL标签分类

        技术图片

 

 

 

  核心标签库:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

  国际化/格式化标签库

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

  

    <c:if>标签
              1. 语法格式:( [ ] 中属性可写可不写 )

                         <c:if  test="xxx"   [var="xxx"]   [scope="page|request|session|application"]  >

                                        执行体

                         </c:if>

               2. 标签属性讲解:

                        test属性:用于设置逻辑表达式,当逻辑表达式为true时执行执行体

                        var属性:用于指定逻辑表达式中变量的名字

                        scope属性:用于指定var变量的作用范围,默认值是page。

               3.用法案例:         

          <c:if test="$!empty user" >
          $user.name
          </c:if>

      

    <c:forEach>标签  
         两种语法格式:

                    1.迭代集合对象:

                                  <c:forEach items="xxx"   [var="xxx"]   [varStatus="xxx"]   [begin="xxx"]   [end="xxx"]   [step="xxx"]>
                                             循环体.....
                                  </c:forEach>

           例:

<%String[] strs = new String[15];
for (int i = 0; i < strs.length; i++)
strs[i]="吖"+i;

request.setAttribute("s",strs);
%>
<c:forEach items="$s" var="str" varStatus="vs">
  $str&nbsp;$vs.count<br/>
</c:forEach>

                     2.迭代数组:

                                   <c:forEach   begin="xxx"  end="xxx"   [var="xxx"]   [varStatus="xxx"]   [step="xxx"]>
                                              循环体....
                                   </c:forEach>
           例:                   

<%String[] strs = new String[15];
for (int i = 0; i < strs.length; i++)
strs[i]="吖"+i;

request.setAttribute("s",strs);
%>
<c:forEach begin="0" end="15" var="i" varStatus="index" step="1">
$s[i]<br/>
</c:forEach>

    标签属性讲解:

                    1.items属性用于指定将要迭代的对象( 数组或集合 )

                    2.var属性用于指  将当前迭代到的元素保存到page域中的名称(可以通过$xxx获得对象)

                    3.varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称

                             varStatus属性可以获取以下信息:

                                       count:表示元素在集合中的序号,从1开始

                                       index:表示当前元素在集合中的索引,从0开始

                                       first:表示当前是否为集合中的第一个元素

                                       last:表示当前元素是否为集合中最后一个元素         

                     4.begin属性用于指定从集合中的第几个元素开始迭代,begin的索引值从0开始              

                     5.step属性用于指定迭代的步长,即迭代的增长因子(for循环的自增或自减值)

    其他标签:

        技术图片

 

 

 

 

        

以上是关于EL与JSPL的主要内容,如果未能解决你的问题,请参考以下文章

学习——JavaWeb06:JSP基本用法

EL与JSTL学习EL技术

EL表达式 与 JSTL标准标签库

EL表达式的语法与应用

javaWEB与EL表达式

jquery与EL表达式的$冲突