JavaWeb之EL表达式和JSTL标签

时间:2022-12-04 13:37:01

    ​

    ​

    ​EL(Expression Language)表达式语言

    ​EL的作用是简化JSP的开发,让我们更方便的进行数据的读取(从application、session、request、pageContext)

    ​语法:

    ​${表达式}

    ​

    ​如:读取session中的name属性

    ​Java脚本输出:

    ​%= session.getAttribute(name)%

    ​EL:

    ​${name}

    ​

    ​读取对象属性的方法:

    ​Java脚本:

    ​%= user.getName()%

    ​EL:

    ​${user.name} 或

    ​${user[name]}

    ​

    ​问题:如果在JSP的application、session、request、pageContext对象中都保存了num参数

    ​那么EL表达式${num}会读取哪个num呢?

    ​EL表达式的查找顺序是从最小范围开始找:

    ​pageContext - request - session - application - null

    ​

    ​域对象:可以指定读取数据的范围

    ​域对象 对应的JSP对象

    ​pageScope pageContext

    ​requestScope request

    ​sessionScope session

    ​applicationScope application

    ​${域对象.表达式}

    ​如:

    ​读取页面中的num参数:

    ​${pageScope.num}

    ​

    ​JSTL(Java Standard Tag Library)Java标准标签库

    ​作用是将JSP中的Java脚本和HTML代码分开,将Java封装到标签中,在页面调用。

    ​使用方法:

    ​1、导入jar包

    ​JavaWeb之EL表达式和JSTL标签

    ​2、在JSP页面中加入taglib指令

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

    ​3、使用标签

    ​c:标签名 属性=”值

    ​

    ​核心标签的使用:

    ​输出标签

    ​c:out value=“输出内容”/c:out

    ​

    ​赋值标签

    ​c:set var=变量名 value=“值”/c:set

    ​示例:

    ​c:set var=num value=999/c:set

    ​c:out value=num=${num}/c:out

    ​

    ​删除变量标签

    ​c:remove var=变量名

    ​

    ​异常处理标签

    ​c:catch var=ex

    ​可能有异常出现的内容

    ​/c:catch

    ​示例:

    ​c:catch var=ex

    ​%int n = 6 / 0; %

    ​/c:catch

    ​br

    ​c:if test=${ex != null}

    ​h3异常:${ex}/h3

    ​/c:if

    ​

    ​if标签

    ​c:if test=EL表达式

    ​HTML代码

    ​/c:if

    ​示例:

    ​c:if test=${num 500}

    ​h3${num }大于500/h3

    ​/c:if

    ​

    ​choose标签

    ​多重判断

    ​c:choose

    ​c:when test=${条件}

    ​HTML代码

    ​/c:when

    ​c:when test=${条件}

    ​HTML代码

    ​/c:when

    ​...

    ​c:otherwise

    ​HTML代码

    ​/c:otherwise

    ​/c:choose

    ​示例:

    ​c:choose

    ​c:when test=${score=90 }

    ​${score }属于A级

    ​/c:when

    ​c:when test=${score=80 }

    ​${score }属于B级

    ​/c:when

    ​c:when test=${score=70 }

    ​${score }属于C级

    ​/c:when

    ​c:when test=${score=60 }

    ​${score }属于D级

    ​/c:when

    ​c:otherwise

    ​${score }属于E级

    ​/c:otherwise

    ​/c:choose

    ​

    ​forEach标签

    ​实现循环的标签

    ​用法1:

    ​c:forEach var=循环变量 begin=初始值 end=结束值 step=增长量

    ​HTML代码

    ​/c:forEach

    ​示例:

    ​c:forEach var=i begin=1 end=10 step=1

    ​p style=font-size:${i + 10}px这是段落${i}/p

    ​/c:forEach

    ​用法2:

    ​c:forEach var=循环变量items=${集合或数组名}

    ​HTML代码

    ​/c:forEach

    ​示例:

    ​c:forEach var=user items=${users}

    ​p${user.name } - ${user.age }/p

    ​/c:forEach

    ​

    ​总结:本章我们学习了JSP开发的两个强大工具,EL表达式让我们能用简洁的语法读取JSP对象中的值;而JSTL标签库让HTML代码和Java代码实现了分离,从而提高了JSP代码的可维护性,也让JSP开发变得更加简单。

    ​

    ​

    ​​