0

これは、for ループを使用してデータベースからアイテムのリストを取得する JSP ページです。

<%
    itemManager mgr = new itemManager();
    Item[] items = mgr.getAllItems();
    for(int i = 0; i < items.length; i++){
    %>
    <tr>
    <td> <img border="0" src="<%=items[i].getItemImage() %>" width="100" height="100">
                </td>
                <td>
                <%=items[i].getItemName()%>
                <input type="text" name="itemID" value="<%=items[i].getItemID()%>">
                        <br/>
                <%=items[i].getItemDesc()%>
                <br/>
                Start Bid : <%=items[i].getStartBid()%>
                <br/>
                Buy it now : <%=items[i].getEndBid()%>
                <br/>
                Bidding close on : <%=items[i].getDuration()%>
                <br/>
                <input type="submit" value="View"> 
    <%
    }
    %></table>

これは、前に選択したアイテムにリンクする jsp ページです。

<table border="1" align="center">
<%
itemManager mgr = new itemManager();
Item items = mgr.getItem((Integer)session.getAttribute("ITEM_DATA"));
%>
<tr>
                <td> <b> <%=items.getItemName() %></b> </td>
</tr>

</table>

これは、選択されたアイテム ID のセッションを保存し、正しいアイテム jsp ページに転送するためのサーブレットです。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession(true);
        int id = Integer.parseInt(request.getParameter("itemID"));
        session.setAttribute("ITEM_DATA",id);
        RequestDispatcher rd = request.getRequestDispatcher("viewItem.jsp");
        rd.forward(request, response);
    }

ただし、表示ボタンをクリックした後。itemID = 1 にリンクし続けます。

URL が表示され"/ItemServlet?itemID=1&itemID=2"ます。

実際、itemID=2 をクリックすると、URL は次のように表示されます。

"/ItemServlet?itemID=2"

その結果、どうすればこれを達成できますか?前もって感謝します!

4

2 に答える 2