Web16——EL表达式和JSTL

hello,我来啦,今天要讲的是EI表达式和JSTL,大家准备好小本本噢~

目录

一.EL

1.什么是EL?

2.EL的功能

3.EL的语法

4.EL的自动类型转换

5.变量属性范围名称

6.EI的那些小内容:

7.jsp内置对象之域对象:

二.JSTL

1.什么是JSTL?

2.JSTL的优点

 2.通用标签

3.条件标签

4.迭代标签


准备工作:需要导入jar包

一.EL

1.什么是EL?

  • EL即Expression Language(表达式语言)

2.EL的功能

  • 替代JSP页面中的复杂代码

3.EL的语法

  • ${ EL exprission }
  • ${ bean.name } 或${ bean['name']}

注:${ bean.name }实质是调用bean的getName()方法.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
request.setAttribute("msg","hello 你好");
application.setAttribute("msg","hello world");
session.setAttribute("msg","你好 世界");

%>
<jsp:forward page="test.jsp"></jsp:forward>

</body>
</html>

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.pojo.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
application:<%=application.getAttribute("msg")%>
<br>
session:<%=session.getAttribute("msg")%> 
<br>

<%pageContext.setAttribute("msg","world 你好");%>

<%--用EI表达式 --%>
application:${applicationScope.msg}
<br>
session:${sessionScope.msg}
<br>
request:${requestScope.msg}
<br>
page:${msg}
<br>
<%
int sum=100;
/*先把他放在域对象中*/
pageContext.setAttribute("sum",sum);

List<User> list=new ArrayList<>();

User u=new User("小明","123456");
pageContext.setAttribute("user",u);
pageContext.setAttribute("list",list);


%>
总价:${sum}
${user}
<br>
名字:${user.getName()}
密码:${user.getPwd()}
<br>
<%--也可以调方法 --%>
${user.name.equals("小明")?"yes":"no" }
<br>
${list.size()==0}
</body>
</html>

4.EL的自动类型转换

  • EL得到某个数据时可以自动转换类型
  • 对于类型的限制更加宽松

5.变量属性范围名称

属性范围EL中的名称
pagepageScope
requestrequestScope
sessionsessionScope
applicationapplicationScope

 

6.EI的那些小内容:

  • EL运算符(算术 关系 Empty运算符【判断集合中值是否为空 返回true或者false】)
  • EL中的隐含对象(pageScope、requestScope、sessionScope、applicationScope)
  • EL表达式只能运用于jsp域对象中取值
  • EL表达式可以替换 <%=%> 
  • jsp域对象的四个 大小:application>session>request>page
  • application是整个范围里面最大的,page是范围最小的,也是占用内存最小的
  • EL表达式有个特征:如果这个值为空,它在页面上运行的时候就不会显示,就会显示空字符串""
  • EL表达式中可以运用三元运算符

  • EL表达式可以调用属性

  • empty是判断你的值是否为空,为空的意思是指元素是否为空

 

7.jsp内置对象之域对象:

  -- pageContext:属性的作用范围仅限当前的jsp页面(范围最小)
  
  -- request:属性的作用范围仅限同一个请求(转发有效)
  
  -- session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)

  -- application:属性的作用范围仅限于当前web应用(范围最大)
 

 

二.JSTL

1.什么是JSTL?

  • JSTL(JavaServerPages Standard Tag Library)JSP标准标签库

2.JSTL的优点

  • 提供一组标准标签
  • 可用于编写各种动态JSP页面

:JSTL通常会域EL表达式合作实现JSP页面的编码

 

 2.通用标签

  • set:设置指定范围内的变量值
  • out:计算表达式并将结果输出显示
  • remove:删除指定范围内的变量
<c:set scope:"page" value="1" var="a"></c:set>
<c:out value="${a}"></c:out>
<c:remove var="a" scope="page"></c:remove>

3.条件标签

  • if:if标签用于判断条件是否成立,与Java中的if语句作用相同
<c:if test="${yy!=null}">
     <h3>哈哈</h3>
     <h3>欢迎登录本系统</h3>
</c:if>

<c:if test="${yy==null}">
     <h3>你现在还没有登录,请点击下方按钮</h3>
     <button>请进行登录</button>
</c:if>

4.迭代标签

  • 实现对集合中对象的遍历
  • 指定迭代的次数
<%--商品的遍历 --%>
<table border="1">
<tr>
   <th>商品编号</th>
   <th>商品名字</th>
   <th>商品类型</th>
   <th>商品价格</th> 
</tr>


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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值