A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kuqi3712 中级黑马   /  2018-1-27 21:10  /  769 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

EL和JSTL简化页面中的尖括号
        expression language表达式语言
       
        EL的语法:
                ${ EL表达式 }
                "${}" 大括号与引号中间不能由空格
                        EL的功能:
                        1.获取数据JSP的四个域
                        ${ pageScope.变量名 }如果没有找到会返回""
                        ...
                        ${ 变量名 }该功能类似于findAttribute(变量名)(从小范围域到大范围域找)
                        如果变量是一个数组 就用 ${ 数组变量名[0] }...
                        如果变量是一个集合 就用 ${ 集合名[0] }..
                        如果是一个Map集合,就用${ 集合名.key名 }有索引就用[] 属性用. ${ 集合名[key名] }
                        如果属性名中包含特殊字符(.)时 必须使用方括号(例如map中的key包含".")
                       
                       
                        2.执行运算
                        执行算数运算,逻辑运算,不能执行位运算
                        逻辑运算中除了 < > <= >= == 还可以用
                        lt gt le小于等于 ge大于等于 eq等于
                        执行关系运算
                        ${ n1<n2 && n2<n3}等价于 and
                                         ||              or
                                         !                                 not
                        执行三元运算                                         
                        ${ n1<n2?"正确":"错误" }
                        判断一个对象(user)是否为空
                                ${ empty user }       
                                ${ not empty user }               
                       
                        3.操作web开发的常用对象(EL的内置对象)
                                11个常用对象:
                                pageScope
                                requestScope
                                sessionScope
                                applicationScope
                               
                                成对出现
                                param
                                paramValues
                                header 获取请求头  ${ header["User-agent"] };
                               
                                headerValues--获取请求头信息
                                initParam   --获取全局初始化参数(web.xml中配置的全局参数)
                                cookie      --web开发中cookie
                                        ${ cookie.cookie名称.value }
                                *pageContext --web开发中的pageContext(EL中无法直接获得request,通过他可以获取其他8个常用的 JSP内置对象)
                                ${ pageContext.request.remoteAddr }获取当前前访问者的ip
                                                                                                       
                                ${ pageContext.request.contextPath }获取工程名
                               
                        4.java中的方法(一般不用)

JSTL: JSP Standard Tag Library
        JSP 标准 标签库
        1.0 不支持EL
        1.1 或者 1.2版本 支持EL
        JSTL与EL 可以替换 jsp中的尖括号
        JSTL的标签库:
                五类标签:
                core(核心标签)
                       
                fmt(国际化标签)
                xml(XML标签)
                sql(sql标签)
                fn(JSTL提供的函数)
        使用JSTL:
                引入JSTL相关的jar包
                在页面中引入标签库
                c.tld中的url
                <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
                <c:if test="条件语句"> 要执行的语句 </c:if>如果满足条件 该标签下的就会执行
                JSTL中没有else
                <c:if test="" var="变量名" scope="域名"></c:if>
                将Test的结果 赋值给变量名,并存储在域名中
               
                <c:set var="" value="" scope=""></c:set>向哪个域中存值
                <c:out value=""></c:out>
                <c:out value="" default=""></c:out> default有值就直接输出value,没有值就输出default
                <c:out value="" escapeXml=""></c:out> 是否转义,默认转义,value中如果时标签就设置为false
               
                <c:forEach>
                遍历数组
                <c:forEach var="遍历结果" items="${ 要遍历的数组 }">
                        ${ i }
                </c:forEach>
                遍历集合
                <c:forEach var="集合元素" items="${ 集合名称 }">
                       
                </c:forEach>
                map集合的遍历
                <c:forEach var="元素的键值对集合(entry)" items="${ 集合名称 }">
                        ${ entry.key } - ${ entry.value }
                </c:forEach>
                遍历1-10 1,2,3...
                <c:forEach var="i" begin="1" end="10">
                        ${ i }
                </c:forEach>
                遍历1-10 1,3,5...
                <c:forEach var="i" begin="1" end="10" step="2">
                        ${ i }
                </c:forEach>
               
                <c:forEach var="i" begin="1" end="10" step="2" varStatus="name">name随便取
                varStatus里面有 count个数(从1开始) index 有下标的数据的下标(如果是增强for就是索引从0开始,如果是普通for就是i)
                        <c:if test="name.count%3==0"
                         <font color="red">  ${ i } </font>
                        </c:if>
                        <c:if test="name.count%3!=0"
                        ${ i }
                        </c:if>
                </c:forEach>
                输出从1-10 到第3个就换色
               
                JSTL提供的EL函数库
                <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
                ${ fn:函数名 }
                ${ fn:}

2 个回复

倒序浏览
满满的赞~~~
回复 使用道具 举报
还是这么厉害!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马