Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

sessionなどの使い方等について

sessionを用いて、ショッピングカートを作ろうとしておりますが、現時点で商品一覧までは表示できるのですが、"購入"を押しても買い物かごを表示させることができず、困っております。何か指摘、アドバイス等を頂ければ幸いです。
以下に作成中のjspコードを挙げさせて頂きます。


<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
<%@ page import="shopping.cart.*" %>
<%@ page import="java.util.*" %>
<%
    Shop shop = (Shop)session.getAttribute("shop");
    if (shop == null) {
        shop = new Shop();
        session.setAttribute("shop", shop);
    }

    String goodsCode = "";

    String selectionGoodsCode = "";

    String goodsName = "";

    String code = request.getParameter(goodsCode);

    String selectCode = request.getParameter(selectionGoodsCode);

    if (request.getParameter("add") != null) {
        shop.addSelection(code);
    } else if (request.getParameter("delete") != null) {
        shop.removeSelection(selectCode);
    }

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
        <title>ショッピングカート</title>
    </head>
    <body>
        <center>
        <h2>販売商品一覧</h2>
        <form action="shopping_cart.jsp" method="post">
        <table border="4" width="700">
            <thead>
            <tr>
                <th>商品名</th><th>選択</th><th>商品名</th><th>選択</th>
            </tr>
            </thead>
            <tbody>
                  <%
                  shop.reGetGoodsKey();
                  while (shop.hasMoreGoods()) {
                      goodsCode = shop.nextGoodCode();
                      goodsName = shop.getGoodName(goodsCode);
                  %>
                <tr>
                    <td><%=goodsName %></td>
                    <td>
                        <input type="hidden" name="<%=goodsCode%>" value="<%=goodsCode%>">
                        <input type="submit"  name="add" value="購入" >
                    </td>
                    <%
                    if (shop.hasMoreGoods()) {
                        goodsCode = shop.nextGoodCode();
                            goodsName = shop.getGoodName(goodsCode);
                    %>
                        <td><%=goodsName %></td>
                        <td>
                            <input type="hidden" name="<%=goodsCode%>" value="<%=goodsCode%>">
                            <input type="submit"  name="add" value="購入" >
                        </td>
                      <% } %>
                  </tr>
                  <% }%>
              </tbody>
          </table>
          </form>
          </center>

        <% if ((selectCode != null) && (!selectCode.equals(""))) { %>
        <center>
        <h2>買い物かご</h2>
        <form action="shopping_cart.jsp" method="post">
        <table border="4" width="700">
            <thead>
            <tr>
                <th>商品名</th><th>選択</th><th>商品名</th><th>選択</th>
            </tr>
            </thead>
            <tbody>
            <%
            shop.reGetSelectionCode();
            while (shop.hasMoreSelection()) {
                selectionGoodsCode = shop.nextSelectionCode();
                goodsName = shop.getGoodName(selectionGoodsCode);
            %>
                <tr>
                    <td><%=goodsName %></td>
                    <td>
                        <input type="hidden" name="<%=selectionGoodsCode%>" value="<%=selectionGoodsCode%>">
                        <input type="submit" name="delete" value="削除" >
                    </td>
                    <%
                    if (shop.hasMoreSelection()) {
                        selectionGoodsCode = shop.nextSelectionCode();
                        goodsName = shop.getGoodName(selectionGoodsCode);
                    %>
                        <td><%=goodsName %></td>
                        <td>
                            <input type="hidden" name="<%=selectionGoodsCode%>" value="<%=selectionGoodsCode%>">
                            <input type="submit" name="delete" value="削除" >
                        </td>
                    <% } %>
                </tr>
            <% } %>
            </tbody>
        </table>
        </form>
        </center>
        <% } %>
    </body>
</html>

2

回答

3633

閲覧

2件の回答

評価

0

ぐぐれば?

評価

0

だいぶ前に、同じようなのを見たことがある気がするな。

「購入」を押したとき、どんなパラメータがサーバへ引き渡されるかを確認するというステップが、全くないようだ。
下のコードから出力されるHTMLを簡単に書くと

<form>
  <hidden name="A" value="A">
  <submit>
  <hidden name="B" value="B">
  <submit>
  <hidden name="C" value="C">
  <submit>
</form>

で、どのsubmitを押してもA, B, C全部が送られる。
しかしname="A"だから、request.getParameter("goodsCode")と差異が出てる。


JSPのデバッグでは、出力されたHTMLを見て、考えているものと同じものが出ているのかを確認するのも重要なポイントになる。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。