- javaでのstrutsを使った買い物かごの作成方法アマゾンのような商品購入サイトを研修で作成しているのですが、商品画面で商品数をカートに入れる際に(商品数をproduct商品IDで渡しています以下のコードで動かすと同時に商品数を入力しないと例外エラーが起きてしまいます。もともと2つのテキストボックスがある例のコードを活用したものなので予想はしていましたが・・・カートの画面では<bean:writename="amount1"/>で渡しています。そこでお伺いしたいことが商品画面で商品数をカートに入れる際に指定したproduct以外はセッションに入った数字をカート画面に渡し、何も入ってない場合は初期値の0を渡す方法です。よろしくお願いします。publicclassCartActionextendsCommonAction{publicStringprocess(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{int[]product={Integer.parseInt(request.getParameter("product1")),Integer.parseInt(request.getParameter("product2")),Integer.parseInt(request.getParameter("product3")),Integer.parseInt(request.getParameter("product4"))};HttpSessionsession1=request.getSession(true);Integer[]amount={(Integer)session1.getAttribute("sessionkey1"),(Integer)session1.getAttribute("sessionkey2"),(Integer)session1.getAttribute("sessionkey3"),(Integer)session1.getAttribute("sessionkey4")};for(inti=0;i<4;i++){if(amount[i]==null){amount[i]=newInteger(0);}amount[i]=newInteger(amount[i].intValue()+product[i]);}session1.setAttribute("amount1",amount[0]);session1.setAttribute("amount2",amount[1]);session1.setAttribute("amount3",amount[2]);session1.setAttribute("amount4",amount[3]);return"SUCCESS";}}
要するに、パラメータを何も考えずに、いきなりInteger.parseIntしてるから数値以外は、みんな例外になるのです。こうやって、地道にやったら、例外でなく0は、入ります。intp1=0,p2=0,p3=0,p4=0;try{p1=Integer.parseInt(request.getParameter("product1"));}catch(Exceptione){}try{p2=Integer.parseInt(request.getParameter("product2"));}catch(Exceptione){}try{p3=Integer.parseInt(request.getParameter("product3"));}catch(Exceptione){}try{p4=Integer.parseInt(request.getParameter("product4"));}catch(Exceptione){}int[]product={p1,p2,p3,p4};
ベストアンサーはPabooからの回答ではありません。
「みんなの疑問QandA」はYahoo!知恵袋より"アマゾン"、"楽天"などのキーワードで取得できるコンテンツを利用・掲載しております。