EL表达式和JSTL标签

1.EL表达式:
    1.1初识 EL表达式
        EL在开发中,通常是用来获取域对象中保存的值,基本语法:${域对象的名称}。
        比如说:request.setAttribute("key" , "value123"): ${ "key"},获取的值就是value123
        如果域对象的名称写错了,使用el表达式获取值,获取的是 ""  空串
    1.2EL表达式中的标识符
        在el书写过程中,会用一些符号来标记标量、函数名等,这些符号称之为标识符
        书写规范:
        1.不能以数字开头
        2.不能包含el中的关键字:and,or等
        3.不能使用el表达式的隐式对象。
        4.不能包含特殊符号,比如正斜杠等
    1.3EL中的变量
        基本格式:${域对象的名称},这个域对象的名称可以理解为就是el中的变量,
            这个变量就不需要定义了,可以直接使用。
    1.4EL中的常量
        1.布尔常量:true或false
        2.数字常量:整型、浮点等常量,使用方式和java差不多
        3.字符串常量:使用方式和java差不多,比如:${ "el的字符串常量""}
        4.Null常量:${nu1}
    1.5EL中的运算符
        1.点运算符:获取域对象中属性的值。
            比如:${person.name }
        2.方括号运算符:在域对象里,有的属性包含特殊字符,所以用方括号的方式来获取值
            比如:<%
                Map<String,string> map= new HashMap<String,String>();
                map.put( "my-name" , "map的值");
                request.setAttribute( "user",map);
                   %>
                    ${user[ "my-name"] }
        3.算术运算符:与Java一样
        4.比较运算符:与Java一样
        5.逻辑运算符:与Java一样
        6.empty运算符:用来判断域对象中的值是否存在,不存在返回为true,否则返回的结果是false,
        7.三目运算符:与Java一样
    1.6EL中的  隐式对象
        1.pageContext对象:为了获取jsp中的隐式对象。
            比如:
            获取项目的路径:${pageContext.request.contextPath }<br/>
            获取请求的URL :${pageContext.request.requestURI }
        2.web域相关的对象
            域作用范围从小到大:pageContext--->request--->session--->application(servletContext)
            el表达式获取域对象中的值:如果域对象的名称相同,获取的是域作用范围最小的值。
                             和pageContext对象的findAttribute方法的效果是一样的。
        3.param和paramValues对象:获取表单提交的数据。
            比如:
                num1 :<input type="text" name="num1" /><br/>
                num2 :<input type="text" name="num”/><br/>
                num3 :<input type="text" name="num"/><br/>
                <input type="submit" value="提交”/>&nbsp;&nbsp;<input type="reset" value="重填”/><hr/>
                num1:${param.num1 }<br/>
                num2:${paramValues.num[0] }<br/>
                num3:${paramValues.num[1] }
        4. Cookie对象:获取cookie的名称,获取cookie的值
            比如:
                <% response.addCookie(new Cookie("userName","itcast"));%>
                获取cookie对象:${ cookie.userName }<br/>
                获取cookie的名称:${ cookie.userName.name }<br/>
                获取cookie的值:${ cookie.userName.value }<br/>

2.JSTL 
    2.1什么是JSTL
        JSTL: JavaServer Pages Standard Tag Libary,java服务器段页面的标准标签库,其实就是在jsp页面上使用的标签库。
        ]STL标签库有五个组成,通常使用核心标签库。
        在jsp页面上面引入标签库:<@ taglib uri="标签库的url地址" prefix="标签的前缀”%>
    2.2JSTL的下载和使用
        1.在jsp页面使用taglib指令引入标签库
        2.导入jstl相关的jar包
        3.测试
    2.3JSTL中的Core标签
        1.<c: out>标签:向网页输出内容
            基本语法:
            第一种:<c:out value="el表达式获取值" default="值" escapeXml="true或者false">x</c:out>
            第二种: <c:out value="el表达式获取值" escapeXml="true或者false">默认值</c:out>
            default:如果value属性获取到了值,就输出这个值,如果没有获取到,就输出default属性对应的值
            escapeXml(默认值true):如果值为true,就会把html标记当成普通的字符串输出,如果值为false,就会正常解析html标记,正常输出
        2.<c:if>标签:进行条件判断,和java类中的if很相似
            基本语法:
                第一种:<c:if test="条件表达式"var="变量名称"scope="域的范围"></c:if>
                第二种: <c:if test="条件表达式" var="变量名称" scope="域的范围">标签体内容</c:if>
                在开发中,经常使用第二种
                test属性:如果返回值为true,就输出标签体内容,否则就不输出。
        3.<c:choose>标签:进行条件判断,和java类中的if,else if(),else if()---else很相似
            基本语法:
                <c:choose>
                    <c:when test="条件表达式">标签体内容</c:when>
                    <c:when test="条件表达式">标签体内容</c:when>
                    --------------
                    <c:otherwise>标签体内容</c:otherwise>----->else
                </c:choose>
            
        4.<c:forEach>标签:遍历域对象中的数组和集合,和java类中的for循环很相似
            基本语法:
                第一种::<c:forEach var="yuanshu" items="数组或者集合中的值" begin="下标" end="结束的下标"step="遍历的增量"×x/c:for>
                普通for:
                    for( int i=o; i<数组或集合的长度;i+)
                第二种:<c:forEach var="yuanshu" items="数组或者集合中的值"x</c:forEach>
                增强for:
                    for(String yuanshu:数组或者集合){ yuanshu }
                varStatus属性: count表示序号,index表示索引(下标),first判断是否是第一个元素
                            last判断是否是最后一个元素
    
        5.<c:param>标签和<c:url>标签:设置路径和传递参数。
            基本语法:
                <c :url var="变量名称"url="路径值">
                    <c:param name="属性名称" value="属性值"></c:param>
                    -------------
                </c:url>
            开发的访问路径:
                >>>1.绝对路径:
                    第一种: http:/ / localhost:8080/ JSTL/ login.html
                >>>2.相对路径:
                    直接写访问的资源路径:比如login.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值