首页 > 解决方案 > 查询动态搜索结果并将特定搜索对象发送到详细信息 jsp

问题描述

我目前正在从事一项基本上搜索餐馆的任务,我目前正在循环浏览我的搜索结果以显示它们,我希望用户能够单击特定餐馆的图像并被重定向到详细信息那家餐厅的页面。我目前正在做:

<div id="query">
                    <%
                    for(int i=0; i<results.size(); i++)
                    {
                        Restaurant result = results.get(i);
                    %>
                        <div class="restaurants">
                         <%request.getSession().setAttribute("result", results.get(i)); %> 
                             <a href="detailsPage.jsp">
                                <img src= "<%=result.getImage()%>" id="imageChange">
                            </a>
                            <div class="restaurantInfo">
                                <p style="font-size: 27px; color: rgb(94, 93, 93);"><%=result.getRestaurantName()%></p>
                                <p style="font-size: 25px; color: rgb(122, 122, 122);"><%=result.getAddress()%></p>
                                <p style="font-size: 25px; color: rgb(94, 93, 93);"> <%=result.getLink()%></p>
                            </div>
                        </div>
                    <%}; %> 

并且只需使用详细信息页面 jsp 中的 getAttribute() 方法来获取我发送的“结果”对象。唯一的问题是它获取了我设置的最后一个 Restaurant 对象,我确定这是因为 setAttribute() 在迭代时被第 i 个餐厅对象覆盖。那么,我该如何发送正确的对象呢?请告诉我,谢谢。

标签: htmlcssjspservlets

解决方案


您应该将restautantIddetail.jsp URL 参数设置为

 <a href="detailsPage.jsp?restaurantId=<%=result.getId()%>">
     <img src= "<%=result.getImage()%>" id="imageChange">
</a>

在您的 servlet 中,您可以通过以下方式获取 restautantId

request.getParameter("restautantId");

推荐阅读