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>
今天的分享就到这里了,下期见