JavaWeb.EL表达式与JSTL

目录

一.Jsp域对象

二.EL表达式

使用EL表达式

三.JSTL标签


一.Jsp域对象

jsp域对象:

pageContext:属性的作用范围仅限当前的jsp页面

request:属性的作用范围仅限同一个请求(转发有效)

session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不失效)

application:属性的作用范围仅限于当前web应用

 范围大小:
       application>session>request>page

二.EL表达式

EL表达式只能从jsp域对象中取值

EL表达式的功能:

替代jsp页面中的复杂代码

EL表达式的语法:

以“${”作为开始,以“}”作为结束

直接使用变量名获取值$

使用EL表达式

先往域中存值

   
       <%
          application.setAttribute("msg1", "hello word");
          session.setAttribute("msg2", "hello 世界");
          request.setAttribute("msg3", "你好 word");
          pageContext.setAttribute("msg4", "你好世界");
       %>
       <jsp:forward page="test.jsp"></jsp:forward>

再用EL表达式取出

application: ${msg1};
<br>
session: ${msg2};
<br>
request:${msg3};
<br>
page:${msg4};

运行结果

 如果属性名相同时会输出什么

属性名相同时,会输出属性的作用范围小的

那么当属性名相同时该怎么取值呢?

我们可以使用它们EL表达式的名称来取值

application: ${applicationScope.msg};
<br>
session: ${sessionScope.msg};
<br>
request:${requestScope.msg};
<br>
page:${msg};

page的属性作用范围最小,就算属性名相同也会输出它的值

 运行结果

 

EL运算符:

运算符”[ ]”

运算符”.”

运算符可以是布尔类型的运算符或者三元运算符等等

 域对象中不仅可以存属性值,还可以存对象、集合等等

向域对象pageContext存入一个用户对象

User u=new User("root","root123");
pageContext.setAttribute("user", u);

 使用EL表达式对这个对象进行取值

 用户对象:${user};
 用户名:${user.name};
 用户密码:${user.pwd};
 

运行结果 

 存入集合


    List<User> list = new ArrayList<>();
    pageContext.setAttribute("us", list);

判断集合是否为空

判断存入的list集合是否为空:${us.size==0 }或者${empty us }-${not empty us }

三.JSTL标签

JSTL基本标签

 --通用标签:set out remove
  --条件标签:if
  --迭代标签:forEach 

使用JSTL标签首先需要导jstl标签库包。

首先在页面上引用

<%--tag标签,lib库,导入一个标签库 prefix是标签库的名字--%>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

使用条件标签 if 判断用户是否登录 

<c:if test="${yy!=null}">
    <h1>欢迎使用该系统</h1>
</c:if>
<c:if test="${yy==null}">
    <h1>你现在还没有登录,请点击下面的按钮</h1>
    <button>请进行登录</button>
</c:if>
  • 使用迭代标签 forEach  完成商品的遍历展示
    <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>

今天就到这,拜拜ヾ( ̄▽ ̄)Bye~Bye~。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值