1. 程式人生 > 資訊 >iQOO Z5x 三款配色亮相,10 月 20 日釋出

iQOO Z5x 三款配色亮相,10 月 20 日釋出

ei表示式只可以在jsp裡面顯示

但並不是在<%%>裡面

<table>
    <tr>
        <th>編號</th>
        <th>姓名</th>
        <th>成績</th>
    </tr>
    <%
        List<User> list =(List<User>) request.getAttribute("list");
        for(User user:list){
    %>
    <tr>
        <th>${user.id}</th>
        <th>${user.name}</th>
        <th>${user.score}</th>
    </tr>

    <%
        }
    
%> </table>

因此我們可以想到這種方法,但是使用者端介面根本讀不到

。。

想不到敲半天程式碼給我整這一出

為啥讀不出呢?

其實吧ei表示式讀取資料是在取出域裡面的資料

所以如果我們要用ei表示式,我們就要先將資料存到request裡面

ei表示式,咱們之前就講過,就單單只是簡化了get這一步驟,而如果要使用get那咱們就需要在前面加一個set操作

先存再取

有人就會問了,咱們不是在servlet裡面就存了一次嗎

這不就早存了嗎

但是咱們其實在

這裡又做了一個取出操作

因為不能連著取兩次,所以,再第二次取的時候咋們要存一次

<table>
    <tr>
        <th>編號</th>
        <th>姓名</th>
        <th>成績</th>
    </tr>
    <%
        List
<User> list =(List<User>) request.getAttribute("list"); for(User user:list){ request.setAttribute("user",user); %> <tr> <th>${user.id}</th> <th>${user.name}</th> <th>${user.score}</th> </tr> <% }
%> </table> ${requestScope.list}

感興趣的可以試試,反正我500了

但畢竟是jsp介面咱們還是不要老是搞這種操作

因為ei的功能就那麼多做不到那種操作,所以這時候咋們的jstl就應聲出來了

jstl為jsp開發者提供一系列的標籤

出了jsp就用不了了

jstl負責邏輯處理,ei負責展示資料

1.使用jstl第一步需要匯入jar包(jstl.jar和standard,jar的包)

2.引入到工程裡面

具體操作就不細講了

在加進來之後咱們就可以看見原始碼了

3.在jsp操作的介面匯入jstl標籤庫

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

就差不多這樣

其中那個lib裡面的jar包必須放在web-inf裡面

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--taglib就是引入的標籤,其中url就是jsp的核心,將其引進來,使用了這個他就會自動去找到該jar包--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table>
    <tr>
        <th>編號</th>
        <th>姓名</th>
        <th>成績</th>
    </tr>
    <c:forEach items="${list}" var="user">
        <tr>
            <th>${user.id}</th>
            <th>${user.name}</th>
            <th>${user.score}</th>
        </tr>
    </c:forEach>
</table>
${requestScope.list}
</body>
</html>

我的還是不出意外的報錯了

但這一段程式碼應該是沒問題的

其中jstl裡面<c:forEach //這裡代表的是迴圈操作 items後面接的是集合處,var是將其轉換為user的形式

jstl的優點:

1.提供了統一標籤

2.可以用於編寫各種動態功能

常用的標籤:

set,out,remove,catch

set:往域物件中新增資料

<%
    request.setAttribute(key,value);
%>

在使用者端可以輸出

但是預設存在page裡面

我們可以把這個範圍改大一點

同時我們也可以通過set來對物件資訊進行修改

<%--將資訊儲存到--%>
        <%
            User user=new User(1,"張三",99);
            request.setAttribute("user",user);
        %>
        ${user.name}
<hr/>
        <c:set target="${user}" property="name" value="李四"></c:set>
        ${user.name}

這就是將其原有的值進行修改

target是要修改的目標(獲取該元素的資訊)

property:修改的地方

value:修改後的值

out使當出現取不出來的情況,就會用default裡面的資料進行代替

remove:刪除操作

後面加上一個scope刪除指定範圍的資料

catch:捕獲異常資訊

<%@ page import="com.southwind.entity.User" %><%--
  Created by IntelliJ IDEA.
  User: mr.wang
  Date: 2021/10/30
  Time: 17:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--將資訊儲存到--%>
        <%
            User user=new User(1,"張三",99);
            request.setAttribute("user",user);
        %>
        ${user.name}
<hr/>
        <c:set target="${user}" property="name" value="李四"></c:set>
        ${user.name}
<%--輸出資料--%>
<c:out value="${name}" default="未定義"></c:out>

<c:remove var="${name}" scope="page"></c:remove>
<%--將錯誤資訊放到error裡面--%>
<c:catch var="error">
    <%
        int a=10/0;
    %>
</c:catch>
<%--輸出報錯的原因--%>
${error}
</body>
</html>

想測試的可以試試看

真的牛掰