JSTL&EL

Posted 猿来有BUG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSTL&EL相关的知识,希望对你有一定的参考价值。

1.EL

1.1语法定义

表达式语言,用于简化和替换我们的jsp中的java代码。
语法:${表达式} --> <%java 代码%>

1.2作用

1) 表达式运算
${10/2}

${10 div 2}

${10 == 10}

${ 10 > 5 }

2) 判断 ${empty list} ${not empty list}
3) 取值-- EL表达式主要是从域中取值的 pageContext request session application 取值
必须将值塞入四个域对象中我才可以获取值,否则取不出来
pageContext (当前的页面) < request (本次请求) < session(本次会话) < application (当前项目)
一般主要用 request/session ,其他两个基本不用。
${name} --> 从四个域中获取叫name名字的值,先从最小的域开始查找,一直查找到最大的域中。
${requestScope.name} --> 从request域中获取name值

2.JSTL

作用:作用是用于展示和判断java的数据 (if foreach choose)

  1. 引入两个jar 包 standard.jar jstl.jar
  2. 在需要引入jstl的页面,需要写表头
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

3)<c:if test="el表达式"></c:if>

<c:if test="${not empty customerList}"></c:if>
  1. <c:forEach >
    items: 存放需要循环的集合 var 表示一个变量名,从集合中获取一个值,赋值给该变量名
    varStatus :里面有两个属性 count代表该循环指定到第几次了,从1开始,index 代表每次循环的下标,从0开始
<c:forEach items="${customerList}" var="cus" varStatus="vvv">
                    <tr>
                        <td scope="row"><input type="checkbox"/></td>
                        <td>${vvv.count}</td>
                        <td>${cus.address}</td>
                        <td>${cus.levelName}</td>
                        <td>${cus.overTime}</td>
                        <td><a href="#"> <span class="glyphicon glyphicon-edit"></span></a></td>
                        <td><a href="#"> <span class="glyphicon glyphicon-trash"></span></a></td>
                    </tr>
                </c:forEach>

取值的时候使用的是EL表达式,EL表达式为什么能获取到值?其实调用的是某个类的get方法。cus.overTime 其实调用的Customer中的getOverTime方法。 getOverTimeStr()-->OverTimeStr-->overTimeStr

以上是关于JSTL&EL的主要内容,如果未能解决你的问题,请参考以下文章

JSTL&EL

jsp&el&jstl

JSTL&EL

EL技术&JSTL技术

JSP MVC EL ——JSTL && 三层架构

JSP MVC EL ——JSTL && 三层架构