JavaWeb.16.EL表达式与JSTL

EL

什么是EL
EL即Expression Language(表达式语言)
EL的功能
替代JSP页面中的复杂代码
EL的语法
${ EL exprission }
${ bean.name } 或 ${ bean[‘name’] }
自动转换类型
EL得到某个数据时可以自动转换类型
对于类型的限制更加宽松
EL优点
相对于jsp中的java代码EL的应用更简单
变量属性范围名称
pageContext:属性的作用范围仅限当前的jsp页面
request:属性的作用范围仅限同一个请求(转发有效)
session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)
application:属性的作用范围仅限于当前web应用

EL表达式以“ ” 作 为 开 始 , 以 “ ” 作 为 结 束 直 接 使 用 变 量 名 获 取 值 {”作为开始,以“}”作为结束直接使用变量名获取值 使
那么问题来了,EL表达式的取值规则如何?
假如
page,request,session,application中储存了不同的值,但他们属性名相同,调用的时候会从哪里调用呢?
答案是会从作用范围中最小的page中调取
当然,EL表达式还可以运用三元运算符等,并且可在其中存入一个集合

    //存入集合
    List<User> list = new ArrayList<>();
    pageContext.setAttribute("us", list);

存入集合后,还可对集合进行判定,是否为空

   //下面两种方法都可以判断集合是否为空
   ${us.size==0 }
   ${empty us }-${not empty us }

JSTL标签

JSTL有六个基本标签
通用标签:set out remove
条件标签:if
迭代标签:forEach
在使用JSTL钱要记得把需要的JSTL包导入
首先先来讲讲通用标签
set:设置值等
out:输出值等
remove:移除值等
再来讲讲if标签:
if 标签可用作判定,举个小例子
用if标签判定用户是否已经登录

<c:if test="${yy!=null}">
    <h1>欢迎使用该系统</h1>
</c:if>
<c:if test="${yy==null}">
    <h1>你现在还没有登录,请点击下面的按钮</h1>
    <button>请进行登录</button>
</c:if>

最后讲讲forEach:
这个标签是用来遍历集合与数组的,可以将之前购物车中遍历购物车的Java代码换成js代码
商品遍历展示:

    <c:forEach items="${list}" var="goods">
        <tr>
            <th>${goods.goodsId}</th>
            <th>${goods.goodsName}</th>
            <th>${goods.goodsType}</th>
            <th>${goods.goodsPrice}</th>
        </tr>
    </c:forEach>

今天的分享就到这里了,下期见

你可能感兴趣的:(web)