EL,jstl,OGNL表达式

来源:互联网 发布:红警3 for mac版 编辑:程序博客网 时间:2024/05/21 06:12

EL表达式el的内置对象(了解)
    11个
        pageScope
        requestScope
        sessionScope
        applicationScope
        
        param
        paramValues
        
        header
        haederValues
        
        initParam
        
        cookie★
        
        pageContext★
    注意:
        除了pagecontext其余对象获取的全是map集合

格式:  ${el表达式}

获取域中数据:★
    注意:★
        若属性名中出现了"."|"+"|"-"等特殊符号,需要使用scope获取
            例如:
                ${requestScope["arr.age"] }
    获取简单数据
        ${pageScope|requestScope|sessionScope|applicationScope.属性名}
        以后经常使用:
            ${属性名}:依次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找
                若查找不到,返回""
    获取复杂数据
        获取数组中的数据
            ${域中的名称[index]}
        获取list中的数据
            ${域中的名称[index]}
        获取map中的数据
            ${域中的名称.键名}
    javabean导航
        javabean:
            java语言编写的一个可重用的组件,
            狭义上来说就是我们编写的一个普通的java类 例如:User Person
            javabean规范:
                1.必须是一个公共的具体的类  public class
                2.提供私有的字段  private String id;//id称之为字段
                3.提供公共访问字段的方法 get|set|is方法
                    public String getId(){..}
                    一旦有公共的方法之后,get|set|is之后的内容,将首字母小写,将这个东西称之为bean属性
                        id就是一个bean属性
                4.提供一个无参的构造器
                5.一般实现序列化接口  serializable
        
        ${域中javabean名称.bean属性}


JSTL

jsp标准的标签库语言,apache的,用来代替java脚本

使用步骤:
        1.导入jar包 (jstl.jar和standard.jar)
        2.在页面上导入标签库
            <%@taglib prefix="" uri=""%>
            
            例如:
                <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
jstl的分类:
        core:核心类库 ★
        fmt:格式化|国际化
        xml:过时了
        sql:过时了
        函数库:很少使用
    core:掌握
        ★c:if
        ★c:forEach
        
        c:set 往域中设置值
        c:choose c:when c:otherwise 分支
        
    ★c:if 判断
        <c:if test="${el表达式}">满足的时候输出的内容</c:if>
        例如:
            <c:if test="${3>4 }">
                3大于4
            </c:if>
            <c:if test="${3<=4 }">
                3不大于4
            </c:if>
            //////////////
    ★c:forEach 循环
        格式1:
             <c:forEach begin="从那里开始" end="到那里结束" step="步长" var="给变量起个名字" varStatus="循环状态变量">
                ${i }--${vs.count }--${vs.current }<br>
             </c:forEach>
            
            varStatus:用来记录循环的状态
                常用的属性:
                    count:记录次数
                    current:当前遍历的内容
        例如:
            <c:forEach begin="1" end="20" step="2" var="i" varStatus="vs">
                ${i }--${vs.count }--${vs.current }<br>
            </c:forEach>
        
        格式2:
            <c:forEach items="${el获取域中的容器}" var="n">
                ${n }
            </c:forEach>
            
            例如:
                //遍历list
                <c:forEach items="${list }" var="n">
                    ${n }
                </c:forEach>
                
                //遍历map
                 <c:forEach items="${map }" var="en">
                    ${en.key }-- ${en.value }<br/>
                  </c:forEach>


OGNL

1、OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,

它是一个开源项目。webwork用它作为表达式语言。

2、其他重要的功能

 a、支持对象方法调用,如xxx.doSomeSpecial();

 b、支持类静态的方法调用和值访问

 c、访问OGNL上下文(OGNL context)和ActionContext;

 d、操作集合对象。


原创粉丝点击