質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1322閲覧

beans インスタンス

takasikoarkaslf

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/01/09 19:26

編集2020/01/10 17:38

java

1protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 HttpSession session = request.getSession(); 3 try { 4 //選択された配送方法IDを取得 5 int inputDeliveryMethodId = Integer.parseInt(request.getParameter("delivery_method_id")); 6 //選択されたIDをもとに配送方法Beansを取得 7 DeliveryMethodDataBeans userSelectDMB = DeliveryMethodDAO.getDeliveryMethodDataBeansByID(inputDeliveryMethodId); 8 //買い物かご 9 ArrayList<ItemDataBeans> cartIDBList = (ArrayList<ItemDataBeans>) session.getAttribute("cart"); 10 //合計金額 11 int totalPrice = EcHelper.getTotalItemPrice(cartIDBList); 12 13 BuyDataBeans bdb = new BuyDataBeans(); 14 bdb.setUserId((int) session.getAttribute("userId")); 15 bdb.setTotalPrice(totalPrice); 16 bdb.setDelivertMethodId(userSelectDMB.getId()); 17//購入確定で利用 18 session.setAttribute("bdb", bdb); 19 request.getRequestDispatcher(EcHelper.BUY_CONFIRM_PAGE).forward(request, response); 20 } catch (Exception e) { 21 e.printStackTrace(); 22 session.setAttribute("errorMessage", e.toString()); 23 response.sendRedirect("Error"); 24 } 25 } 26 27}

java

1DeliveryMethodDataBeansBeans 2public class DeliveryMethodDataBeans implements Serializable { 3 private int id; 4 private String name; 5 private int price; 6 7 8 public int getId() { 9 return id; 10 } 11 public void setId(int id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 public int getPrice() { 21 return price; 22 } 23 public void setPrice(int price) { 24 this.price = price; 25 } 26}

java

1BuyDataBeansのbeans 2public class BuyDataBeans implements Serializable { 3 private int id; 4 private int userId; 5 private int totalPrice; 6 private int delivertMethodId; 7 private Date buyDate; 8 9 private String deliveryMethodName; 10 private int deliveryMethodPrice; 11 12 13 public int getId() { 14 return id; 15 } 16 public void setId(int id) { 17 this.id = id; 18 } 19 public int getUserId() { 20 return userId; 21 } 22 public void setUserId(int userId) { 23 this.userId = userId; 24 } 25 public int getTotalPrice() { 26 return totalPrice; 27 } 28 public void setTotalPrice(int totalPrice) { 29 this.totalPrice = totalPrice; 30 } 31 32 33 public int getDelivertMethodId() { 34 return delivertMethodId; 35 } 36 public void setDelivertMethodId(int delivertMethodId) { 37 this.delivertMethodId = delivertMethodId; 38 } 39 public Date getBuyDate() { 40 return buyDate; 41 } 42 public void setBuyDate(Date buyDate) { 43 this.buyDate = buyDate; 44 } 45 public String getDeliveryMethodName() { 46 return deliveryMethodName; 47 } 48 public void setDeliveryMethodName(String deliveryMethodName) { 49 this.deliveryMethodName = deliveryMethodName; 50 } 51 52 public String getFormatDate() { 53 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH時mm分"); 54 return sdf.format(buyDate); 55 } 56 public String getFormatTotalPrice() { 57 return String.format("%,d", this.totalPrice); 58 } 59 public int getDeliveryMethodPrice() { 60 return deliveryMethodPrice; 61 } 62 public void setDeliveryMethodPrice(int deliveryMethodPrice) { 63 this.deliveryMethodPrice = deliveryMethodPrice; 64 } 65 66 67} 68

最後の行のbdbのインスタンスにつめてsessionを使おうと思っているのですがdeliveryMethodName、deliveryMethodPriceの値が入りません
bdbのインスタンスの中にuserSelectDMBを入れたいです
userSelectDMBのインスタンスにはid,name,priceが入っていて取れています。
その値をbdbインスタンスの deliveryMethodName、deliveryMethodPrice、に
deliveryMethodName、deliveryMethodPriceに値userSelectDMBのインスタンスの値を移したいです

userSelectDMBで取れてるname→ bdbのdeliveryMethodName
userSelectDMBで取れてるprice→ bdbのdeliveryMethodPrice
を移せたら正解です

方法、どこがおかしいのかが分からないです。
恐れ入りますがどこが間違っているか教えていただけたら幸いです。
他にも情報が必要でしたら編集いたします
userSelectDMBではDeliveryMethodDataBeansからid.name.priceは取れています
bdbではdeliveryMethodName、deliveryMethodPriceの値がnull,0になっています
deliveryMethodName、deliveryMethodPriceの値を取得したいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/09 20:33

「うまくいきません」系の表現は誰にもなにも伝えない表現です(「質問するときのヒント」参照) 「何が」「どうなる」「どうなったら正解か」を具体的に記載しましょう。
A-pZ

2020/01/10 07:00

サーブレットのdoPostのtry~で囲っている範囲が大きすぎて判断がつきかねます。 残念ながら、HttpSessionに格納したいのか、値が取得できていないのか判断つきませんでしたので、doPostで省略されているコードを追記した上、達成したい内容を整理することで、回答が得られるかもしれません。
guest

回答1

0

ベストアンサー

java

1BuyDataBeans bdb = new BuyDataBeans(); 2bdb.setUserId((int) session.getAttribute("userId")); 3bdb.setTotalPrice(totalPrice); 4bdb.setDelivertMethodId(userSelectDMB.getId()); 5session.setAttribute("bdb", bdb);

deliveryMethodName を格納するであろう setDeliveryMethodName() や、deliveryMethodPriceを格納する deliveryMethodPrice() メソッドが、このソースコード内では実行されていないので、それぞれ値が格納されていないのではないでしょうか。

投稿2020/01/11 04:53

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takasikoarkaslf

2020/01/12 06:52

ご回答ありがとうございます userSelectDMBの中にbeansから取って name.priceと言う名前で取れています deliveryMethodName、deliveryMethodPriceに格納したいのですがその移し方のコードの書き方が分かりません bdb.setDelivertMethodId(userSelectDMB.getId()); で移せるのかと思ったら名前が違うくて出来なくて煮詰まっている状態です
A-pZ

2020/01/12 12:48

回答をよくお読みください。メソッド名が書いてありますよ。
takasikoarkaslf

2020/01/13 18:31

ありがとうございます。解決できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問