EL表达式和JSTL表达式

一、EL表达式

EL表达式提供了在JSP中简化表达式的方法,基于可用的命名空间(PageContext属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到Java类中静态方法的可扩展函数以及一组隐式对象。

1 EL特点和使用简介

格式:${…}

例如:EL表达式${sessionScope.user.sex} 对应下面的JSP代码

       <%User user = (User)session.getAttribute(“user”);

              Stringsex = user.getSex();%>

EL提供.和[]两种运算符来存取 数据,[]可以访问集合或数组的元素、Bean的属性。(前提是属性要有getXXX和setXXX方法)

例如:${sessionScope.user.sex}

==

${sessionScope.user[“sex”]}

2 EL运算符

       ==或eq         /      !=或ne   

       <或lt             /      >或gt

扫描二维码关注公众号,回复: 2197952 查看本文章

       <=或le          /      >=或ge

       ${empty A = param.name}  //用于判断值是否为空,A为null/不存在/空时,返回true,否则返回false

判断是否相等:${param.password1== param.password2}

3获取表单数据

       我们一般取得用户请求参数:

       Request.getParameter(String name)          //获得单个数值

       Request.getParameterValue(String name)          //获得多个同名数值,如CheckBox

       在EL中则

       ${param.name}             //获得单个数值

       ${paramValues.name}    //获得多个同名数值

       ${paramValues.hobbies[0]}   //获得多个同名数值中的第N个

4 EL的隐含对象

       JSP对象         EL隐含对象            EL表达式               JSP

       parameter      param                   ${param.name}                    <%request.getParameter(“user”)%>

       page              pageScope

       request          requestScope        ${requestScope.user}           <%request.getAttribute(“user”)%>

       session          sessionScope

       application     applicationScope

       若不写范围:${username},则依序查找page/request/session/application,有则返回值,无则返回null

 

二、JSTL

1 标签库

核心标签库

通用核心:<c:out><c:set> <c:remove> <c:catch>

条件控制:<c:if><c:choose> <c:when> <c:otherwise>

循环控制:<c:forEach><c:forTokens>

URL相关:<c:import> <c:url> <c:redirect> <c:param>

格式标签库

数字日期:<fmt:formatNumber> <fmt:formatData> 等

SQL标签库

XML标签库

函数标签库

<fn:length><fn:contains> <fn:containsIgnoreCase> <fn:endsWith> 等

2 一般用途的标签

       <c:out>:用于计算一个表达式并将结果输出

       <c:set>:用于设置范围变量的值或者JavaBean对象的属性,

              <c:set var=”username” value=”lisi”scpe=”session”/>

       <c:remove>:相对于<c:set>,作用是移除范围变量

              <c:remove var=”username” scope=”session”/>

       <c:catch>:用于捕获其中操作所报出的异常

3 条件标签

       <c:if>:用于实现Java中的if语句功能

              <c:if test=”${user.visitCount==1}”>第一次访问</c:if>

       <c:choose>/<c:when>/<c:otherwise>:实现条件执行

              <c:choose>

                     <c:when test=”${row.v_money<10000}”>11</c:when>

                     <c:otherwise>222</c:otherwise>

              </c:choose>

4 循环控制标签

       <c:forEach>:将集合中的成员遍历一遍

              <c:forEach items=”collection”var=”varName” [varStatus=”varStatusName”]成员集合</c:forEach>

       <c:forTokens>:用来浏览字符串中所有的成员(String str = “太阳、星星 、月亮;地球|天空”)

              <c:forTokens items=”${str}”delims=”、;|” var=”substr”>

                     <c:out value=”${substr}”/>

              </c:forTokens>

5 URL相关标签

       <c:import>

       <c:url>

       <c:redirect>

猜你喜欢

转载自blog.csdn.net/try_and_do/article/details/80804950