哈喽,大家好,今天跟我们一起来学习一下jstl和el这两个优化jsp项目的表达式标签吧
一,EL表达式
1.什么是EL
EL即Expression Language(表达式语言)EL语言的灵感来自于ECMAScript和XPath表达式语言。EL表达式语言是一种简单的语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。”
2.EL的语法
${ EL exprission }
${ bean.name } 或 ${ bean[‘name’] }
${bean.name}实质是调用bean的getName()方法
${msg}
<br>
${msg2==null}
<br>
${msg==null?1:2}
<%
//EL表达式有一个特征,如果文null或者什么东西都没有,那它就不显示
//El表达式必须从雨点小中取值
User u = new User("root", "root123");
List<User> list=new ArrayList<>();
pageContext.setAttribute("User", u);
pageContext.setAttribute("us",list );
%>
<br>
${User}
<br>
名字: ${User.getName()}
${User.name}
<br>
${User.pwd}
密码: ${User.getPwd()}
<br>
名字: ${User.name.equals("root")?"n你好":"adasas "}
<br>
${us.size()==0} --
${empty us}--
${not empty us}
以“ ” 作 为 开 始 , 以 “ ” 作 为 结 束 直 接 使 用 变 量 名 获 取 值 {”作为开始,以“}”作为结束 直接使用变量名获取值 ”作为开始,以“”作为结束直接使用变量名获取值
${ username }
变量属性范围名称
属性范围 | EL中的名称 |
---|---|
page | pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null |
request | requstScope |
session | sessionScope |
application | applicationScope |
3.EL隐式对象介绍
二,JSTL标签
1,什么是JSTL标签
JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已
2,JSTL的使用
- 首先导入jstl的jar包,然后引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- 使用:
<%
--条件标签:if
String zz = request.getParameter("zz");
pageContext.setAttribute("zz", zz);
%>
<c:if test="${zz==null}">
<h1>嘿嘿,你还没登录</h1>
</c:if>
<c:if test="${zz!=null}">
<h1>欢迎,你来到我的心上❤❤❤</h1>
</c:if>
3,jstl标签库
- 举例代码
–通用标签:set out remove
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<body>
<c:set var= "example" value="${100+1}" scope="session" />
<c:out value="${example}"/>
<c:remove var= "example" scope="session"/>
</body>
–条件标签:if 上面的使用已举例
–迭代标签:forEach
<%
List<Goods> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Goods gs = new Goods();
gs.setGoodsId(i);
gs.setGoodsName("红米k" + i);
gs.setGoodsType("小米" + i);
gs.setGoodsPrice(i * 1000.0);
list.add(gs);
}
pageContext.setAttribute("list", list);
%>
<!--商品遍历-->
<table>
<tr>
<th>商品编号</th>
<th>商品名字</th>
<th>商品类型</th>
<th>商品价格</th>
</tr>
<c:forEach items="${list}" var="goods">
<tr>
<td>${goods.goodsId}</td>
<td>${goods.goodsName}</td>
<td>${goods.goodsType}</td>
<td>${goods.goodsPrice}</td>
</tr>
</c:forEach>
</table>
三,jsp域对象
jsp内置对象之域对象:
– pageContext:属性的作用范围仅限当前的jsp页面(范围最小)
– request:属性的作用范围仅限同一个请求(转发有效)
– session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)
– application:属性的作用范围仅限于当前web应用(范围最大)
ok.今天的分享就到这了,点个赞在走吧!!