我正在自己學習網路開發并建立一個網站來使用 YelpAPI 搜索您所在地區的餐館。我已經進行了搜索,但我希望用戶能夠單擊其中一個結果并打開一個 Expanded.jsp 頁面,其中顯示有關該餐廳的其他詳細資訊。問題是我不知道如何在多個頁面上的 servlet 中繼續使用從 Yelp 檢索的資料。下面是我的代碼的概要:
我有一個 servlet,它使用 YelpAPI 來獲取 10 家餐廳的串列。然后將此串列設定為屬性并轉發到結果頁面。
List<Restaurant> restaurants = getRestaurants(name, location);
request.setAttribute("data", restaurants);
request.getRequestDispatcher("/results.jsp").forward(request, response);
然后我(在 results.jsp 中)使用一些 JSTL 來創建結果頁面。這一切都很棒!
<c:forEach var="restaurant" items="${data}">
<a href="expanded.jsp"><img src="${restaurant.image_url}"></a>
<p>${restaurant.name}</p>
<p>${restaurant.location}</p>
<a href="${restaurant.url}">Reviews</a>
</c:forEach>
當用戶單擊其中一個影像(嵌套在錨標記中)時,它顯然會重定向到 expand.jsp,但所有屬性都已清除為 null,并且似乎無法訪問特定餐廳的任何此類資料。我不是在尋找任何人為我撰寫代碼,但我很想了解我應該采取什么方法才能讓用戶單擊餐廳影像并繼續訪問包含有關該餐廳的更多詳細資訊的頁面。
uj5u.com熱心網友回復:
方法是為餐廳細節設定一個單獨的 Servlet。此 Servlet 將根據唯一 ID 獲取餐廳詳細資訊。
<c:forEach var="restaurant" items="${data}">
<a href="expanded?id=${restaurant.id}"><img src="${restaurant.image_url}"></a>
(...)
</c:forEach>
在 servlet 中,您將根據 id 獲取餐廳詳細資訊。
String id = request.getParameter("id");
Restaurant restaurant = getRestaurant(id);
request.setAttribute("restaurant", restaurant);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369974.html
