EL和JSTL总结

一、EL和JSTL简介

EL:(Expression Language)表达式语言

JSTL( JSP Standard Tag Library)JSP标准 标签库,由apache实现

两者的关系:JSTL在赋值时会大量用到EL表达式。可以简单理解成,EL只是JSTL中的一部分。

二、EL表达式

语法结构:${expression},用美元符号定界,内容包括在{}中

隐式对象pageScope、reqeustScope、sessionScope、applicationScope,属性基本和JSP中的 page,request,session,application一样。

与输入有关的隐式对象param和paramValues     ${param.name},${paramValues.name}。

其他隐式对象:cookie 和 initParam

三、JSTL表达式

JSTL:由四个和核心标签库组成

format:用来格式化数字和日期      <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

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

xml:用来操作通过xml表示的数据   <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="xml"%>

sql:用来查询关系数据库的操作       <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

表达式操作

 1、<c:out>

作用:用于显示数据的内容。

属性说明:
 value:需要显示出来的值。
 default:如果value的值为null时,则显示default指定的值。

 escapeXml:是否转换特殊字符,默认为true。

2、<c:set>

作用:用于将变量的值存储在JSP范围中或JavaBean的属性中。

属性说明:
 value:要被存储的值。
 var:定义一个变量名称。
 scope:var变量的JSP范围。默认为page范围。
 target:为一JavaBean或Map对象。

3、<c:remove>

作用:移除变量。

属性说明:
 var:定义一个要移除的变量。

 scope:var变量所在的JSP范围,默认为page范围。

4、<c:catch>

作用:用于处理产生错误的异常情况,并将错误信息存储起来。

属性说明:

 var:定义一个变量获取错误信息

5、<c:if>

作用:类似if判断语句,用于表达式判断。

6、<c:choose>、<c:when>、<c:otherwise>

作用:这三个标签必须在一块使用

7、<c:forEach>

作用:为循环控制

8、<c:forTokens>

作用:用指定分隔符分隔一字符串,并迭代分隔后的数组。

9、<c:import>

作用:将其他静态或动态文件包含到当前网页中。不但可以包含同一个应用程序下的文件,还可以包含其他其他网站的文件。

例:电影分页部分代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<style type="text/css">
.unuse{
color:#ccc;
}
.currentPage{
background:blue;
}
</style>
  <body>
    <div>
        <c:set var="pageNo" value="${pageNo}"></c:set>
        <c:set var="count" value="${count}"></c:set>
        <c:set var="typeID" value="${typeID}"></c:set>
    <c:if test="${pageNo!=null}">
        <fmt:formatNumber type='number' var='pagecount1' value='${(count-1)/5+1}' maxFractionDigits='0' ></fmt:formatNumber>
        <c:set var="pageCount" value="${pagecount1}"></c:set>
        <c:choose>
        <c:when test="${pageNo==1}">&nbsp; 
            <span class="unuse">[第一页]</span>
            <span class="unuse">[上一页]</span>
        </c:when>
        <c:otherwise>
            <span><a href="/MoviesDVD/JSP/index.jsp?typeID=${typeID }&pageNo=1">[第一页]</a></span>
            <span><a href="/MoviesDVD/JSP/index.jsp?typeID=${typeID }&pageNo=${pageNo-1}">[上一页]</a></span>
        </c:otherwise>
        </c:choose>
        <c:forEach begin="1" end="${pageCount}" step="1" varStatus="status">
            <c:choose>
                 <c:when test="${status.current==pageNo}">
                     <span class="currentPage">${status.current }</span>      
                 </c:when>
                 <c:otherwise>
                     <span><a href="/MoviesDVD/JSP/index.jsp?typeID=${typeID}&pageNo=${status.current}">${status.current }</a></span>
                 </c:otherwise>
            </c:choose>
        </c:forEach>
        <c:choose>
            <c:when test="${pageNo==pageCount}">
                 <span class="unuse">[下一页]</span>
                 <span class="unuse">[最后一页]</span>
            </c:when>
            <c:otherwise>
                 <span><a href="/MoviesDVD/JSP/index.jsp?typeID=${typeID }&pageNo=${pageNo+1}">[下一页]</a></span>
                 <span><a href="/MoviesDVD/JSP/index.jsp?typeID=${typeID }&pageNo=${pageCount}">[最后一页]</a></span>      
            </c:otherwise>
        </c:choose>
        <form style="display:inline;">
    <input type="hidden" name="typeID" value="${typeID }"/>
    <select name="pageNo">
       <c:forEach begin="1" end="${pageCount}" step="1" varStatus="status">
    <option value="${status.current }" ${status.current==pageNo?"selected":"" }>${status.current }</option>
       </c:forEach>
    </select>
    <input type="submit"  value="go" style="width=30px;">
    </form>
    </c:if> 
    </div>
  </body>
</html>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值