浅谈EL与JSTL

首先,在JSP页面中写入大量的java代码会导致JSP页面中html代码和java代码混杂在一起, 会造成页面非常的混乱.

-------- 难于维护

EL与和JSTL配合起来替JSP页面中的大部分的java代码.

 

el表达式 

 EL 全名为Expression Language,用来替代<%=  %>脚本表达式。
        基本结构: ${ 表达式 }
            EL只能获取域中的数据
            EL只能获取不能设置
            EL只能获取不能遍历

作用:

(1) 获取数据

            ◇ 获取常量: 支持 数字/字符串/布尔值, 整个el表达式的值就是当前常量的值
            ◇ 获取变量
            ◇ 获取数组中的数据
            ◇ 获取集合中的数据
            ◇ 获取map中的数据
            ◇ 获取javaBean中的属性

例如:<%= request.getContextPath() %>

替换为:${ pageContext.request.contextPath }
(2) 执行运算
            ◇ 算术运算
            ◇ 关系运算
            ◇ 逻辑运算
            ◇ 三元表达式
            ◇ empty运算

(3) 获取常用开发对象

el中内置了11个常用对象, 可以不用预先存入域中就可以使用

            ◇ 代表当前JSP页面环境的pageContext对象
              -----------------有了它就意味着el中就有了其他八大隐式对象

            ◇ 代表四大作用域的隐式对象, 用来明确指定从哪个域中查找数据
                pageScope -- pageContext
                requestScope -- request
                sessionScope -- session
                applicationScope -- ServletContext

            ◇ 请求参数组成的map
                !!!param - Map<String, String>
                paramValues - Map<String, String[]>
                
            ◇ 请求头组成的map
                header -- Map<String, String>
                headerValues - Map<String, String[]>
                    key为请求头的名字
                    
            ◇ 所有cookie信息组成的map
               cookie -- Map<String, Cookie>
               ${cookie.JSESSIONID.name}
              例如:
                key为Cookie的名字, 值为Cookie对象
                Cookie cookie1 = new Cookie("c1", "xxx")
                Cookie cookie2 = new Cookie("c2", "xxx")
                Cookie cookie3 = new Cookie("c3", "xxx")
                c1:cookie1
                c2:cookie2
                c3:cookie3
                ${ cookie.c1.value }
                

            ◇ 所有web应用初始化信息组成的map
                initParam -- Map<String, String>
                key初始化参数的名字, value为参数对应的值

JSTL

jstl标签库 -- 通用的JSP标签库 

在JSTL中分为以下五个标签

核心标签--core
格式化标签
SQL标签
XML标签
JSTL函数

使用不同的标签的时候需要在JSP中引入不同的库

一些常用的标签:

core库
        <c:out> 标签用于输出一段文本内容到pageContext对象当前保存的“out”对象中。
                输出常量
                输出变量
                转义输出
                输出默认值
        
        <c:set> 标签用于把某一个对象存在指定的域范围内,或者设置Web域中的java.util.Map类型的属性对象或JavaBean类型的属性对象的属性。
                向四大作用域中增加域属性
                向map中增加、修改键值对
                修改javabean的属性
            
        <c:remove> 标签用于删除各种Web域中的属性
                       如果不指定scope属性,会删除所有作用域中的该属性

        <c:catch>  标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:<c:catch [var="varName"]>nested actions</c:catch>
        捕获到的异常 可以通过声明var属性 用指定的名称 写入 pageContext域 后续处理

        <c:if test=""> 标签可以构造简单的“if-then”结构的条件表达式 
                test 写判断表达式
                scope 声明将test的结果存入哪个域
                var 写入域时的属性名
        
        <c:choose> - <c:when> <c:otherwise>
        标签用于指定多个条件选择的组合边界,实现多重判断,可以构造类似 “if-else if-else” 的复杂条件判断结构。

        <c:forEach> 标签用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复迭代执行标签体中的内容。 

        <c:forTokens> 用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的
        
         <c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值