JSTL和EL:

El表达式使JSP的开发变得更加简单

简介:

什么是EL:

        Expression Language(表达式语言)

El得功能:

        代替JSP页面中数据访问时得代码复杂编程

EL得特点:

        自动转换类型:

                EL得到某个数据时可以自动转换类型

        使用简单

EL表达式得语法:

${EL expression}

        通过变量名取值

        获取对象得属性

        获取集合元素

        执行表达式

 001:通过变量名取值

                ${变量名}:

                        如:代码:

按照page--》request--》session--》application的作用域顺序依次查找,找到返回,找不到返回null。

        //准备值(在Servlet中)
        request.setAttribute("user",user);
        //在JSP中访问数据
        姓名:${user]     ----》${requestScope.user}

 指定作用域:

属性范围EL中的名称
pagepageScope,例如${pageScope.username}表示在page作用域查找变量username,找不到返回null
requestrequestScope
sessionsessionScope
applicationapplicationScope

002:获取对象的属性:

        

<%-- //使用EL(操作符)展示集合--%>
 <h1> 使用.展示集合</h1>
 用户名:${user.userName}
  密码:${user.password}

  <%-- //使用[ ]展示集合--%>
  <h1> 使用[ ]展示集合</h1>
  用户名:${user["userName"]}
  密码:${user["password"]}

EL表达式语法:

 EL隐试对象

 JSTL通用标签:

使用EL表达式可以简化JSP页面编码,但是如果需要进行逻辑判断和循环控制怎么办?

El表达式封装了数据访问功能,而JSTL标签库则封装了逻辑控制,循环控制以及数据格式化功能,二者结合使用才可以完整的实现动态页面开发需求。

什么是JSTL:

        jsp标准标签库(JSP Standard Tag Library)

JSTL优点:

  1. 提供一组标准标签
  2. 可用于编写各种动态功能

使用步骤:

        引入JSTL的jar文件和标签库描述符文件

        在JSRTL页面添加taglib指令

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

          使用JSTL标签

 JSTL标准标签库介绍: 

 set:设置指定范围内的变量值

        将value值存储到范围为scope的变量variable中

语法:<c:set var="variable" value="value“ scope=”scope“/>

                var:变量名称

                value:变量的值

                scope:变量的作用域

          将value值设置到对象的属性中

语法:<c:set target=”target“ property=”property“ value=”calue“/>

                target:设置变量的每一个值。

                property:=设置变量中的哪一个属性。

                value:属性具体的值。

 //在servlet或者jsp中设置javaBean
        User user=new User();
        request.setAttribute("user",user);
        //在JSP中修改javaBean的属性值
        <c:set target="${user} "property="name" value="defautName"></c:set>

      

out:计算表达式并将结果输出显示

        不指定默认值

<c: out value="value"/>

        指定默认值

<c:out value ="value" defaulrt="default"/>

 //在servlet或者jsp中设置javaBean
        User user=new User();
        request.setAttribute("user",user);
        //在JSP中修改javaBean的属性值
        <c:out value="${user.name} " default="NO username"/>

转义特殊字符:

out 后加上 (escapeXml=”false“)就不会被转义: 

<p>${"<a href='http://www.baidu.com'>百度</a>"}</p>    //页面显示百度
<p>页面显示
    <c:out escapeXml="false" value="<a>'http://www.baidu.com'>百度</a>"/>   //页面显示百度
</p>
<c:out value=""<a>'http://www.baidu.com'>百度</a>"/>   //页面显示<a>'http://www.baidu.com'>百度</a>

remove:删除指定范围内的变量

        <c:remove var="variable" scope="scope"/>

                var:变量名称。

                scope:作用域。

<p>msg=<c:out value="${msg}" default="null"></c:out> </p>
<p><c:set var="msg" value="hello remove" scope="page"></c:set> </p>
<p>msg=<c:out value="${msg}" default="null"></c:out> </p>
<p><c:remove var="${msg}" scope="page"></c:remove> </p>
<p>msg=<c:out value="${msg}" default="null"></c:out> </p>

JSTL之条件查询:

if:实现java语言中if语句的功能

        语法:<c:if test="condition" var ="variable" scope="scope"> ...  </c:if>

                        test="condition"::判断条件表达式返回true/false

                        var ="variable"::该变量用于保存返回值true/false

                        scope="scope"::指定var变量的作用域

        <c:if test="判断条件"></c:if>

choose:实现if-else if-else语句功能

                语法:

                        <c:choose>

                                <c:when test="condition1">

                                        内容一

                                </c:when>

                                <c:when test="condition2">

                                        内容二

                                </c:when>

                        </c:choose>

                                .............

                          <c:otherwise>

                                        内容n

                          </c:otherwise>

          </c:choose>

JSTL迭代标签

forEach:实现对集合对象的遍历

<c:forEach items="collection" var="varName" begin=”start“ end=”end“  step=”stepSize“ varStatus=”status“>

        ........循环迭代代码

</c:forEcah>

                 items="collection"::iteams指定要遍历的集合对象

                 var="varName"::var指定当前成员的引用

                 begin=”start“::begin指定从集合的第几位开始

                end=”end“::end指定迭代到集合的第几位结束

                 step=”stepSize“::step指定循环的步长

                varStatus=”status“”::varStatus属性用于存放var引用的成员相关信息,如索引

代码演示:

<tr>
    <td>名字</td>
    <td>球号</td>
    <td>操作</td>
</tr>
<c:forEach items="${users}" var="u">
    <tr>
        <td>${u.userName}</td>
        <td>${u.password}</td>
        <td><a href="#">修改</a></td>
    </tr>

</c:forEach>

                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值