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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

1569閲覧

一部の値のみをservletへpostリクエストする方法

mutani

総合スコア20

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2018/09/25 01:24

編集2018/09/25 03:20

前提・実現したいこと

更新ボタンを押下したとき更新ボタンの横列の値1のみをservletに送りたい。
ソースコード内のproductList.product_id に2つの値(1,2)が格納されており、
その内の1つのみ(更新ボタンの横列のみの値)をservletへ送りたい。
また、それが不可能な場合、別な方法で同じような処理を行いたい。

一覧画面          

↓ID2の更新ボタンを押下

イメージ説明

更新画面          

ID2値1値2値3更新 
更新ボタン

発生している問題・エラーメッセージ

更新ボタンを押下したときID2のレコードを表示したいのにID1とID2のレコード両方が更新画面に表示される

該当のソースコード

JSP

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 5 6<!DOCTYPE html> 7<html> 8 <head> 9 <meta charset="utf-8"> 10 <title>在庫管理</title> 11 <link rel="stylesheet" type="text/css" href="css/style.css"> 12 </head> 13 14 <body> 15 <p>在庫管理システム</P> 16 <form action=""> 17 <input class="sbtn" type="image" alt="検索" src="img/sb.png" /> 18 </form> 19 <form action="ProductInfo.jsp"> 20 <input class="sptn" type="image" alt="新規登録" src="img/sp.png" /> 21 </form> 22 <br> 23 <table border="1"> 24 <tr> 25 <th>商品ID</th><th>画像</th><th>メーカー名</th><th>商品名</th> 26 <th>ジャンル</th><th>在庫数</th><th>販売個数</th><th>価格</th><th>更新</th> 27 </tr> 28 <c:forEach var="productList" items="${productList}"> 29 <tr> 30 <td>${productList.product_id }</td><td><img src="img/SW_E07_一覧用.png" alt="写真"></td> 31 <td>${productList.product_maker }</td><td>${productList.product_name }</td> 32 <td>${productList.product_genre_code }</td><td>${productList.product_stock }</td> 33 <td>${productList.product_sales }</td><td>${productList.product_price }</td> 34 <td align="center"><form action="/sample001/ProductUpdate"><input class="upd" type="submit" value="更新"></form></td> 35 </tr> 36 </c:forEach> 37 </table> 38 </body> 39</html> 40

補足情報(FW/ツールのバージョンなど)

一覧画面の値はDBから値を取得して表示しております。

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

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

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

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

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

m.ts10806

2018/09/25 02:30

コードは```で「囲う」必要があります。開始だけではコードブロックとなりません。難しければコード部分を選択状態にして<code>ボタンを押すと良いです。
m.ts10806

2018/09/25 02:33

表のAとBはコード内で言えばどれにあたるのでしょうか。見た感じ表というより行のように見えます。
mutani

2018/09/25 02:40

mts10806様ご連絡ありがとうございます。ご指摘ありがとうございます。またご質問いただきました件についてはproduct_○○に複数値が入っておりますので表A、表Bがあります。
m.ts10806

2018/09/25 02:43

ちょっとよく分かってないですが、「表」だとそれぞれにヘッダーがあることになります。提示コードから読み取れるのは1表に複数レコードがあること、、だけですが、おおよそヒントになりそうな回答は可能なので回答してみます。
guest

回答1

0

ベストアンサー

更新ボタンのところはコード内では下記ですね。

jsp

1<td align="center"> 2 <form action="/sample001/ProductUpdate"> 3 <input class="upd" type="submit" value="更新"> 4 </form> 5</td>

※見やすくするためインデントつけました。

レコードでも表でも関係はないですが、この更新ボタンが含まれるformには区別する情報が何も含まれていません。
例えばレコードのIDとかそういった情報ですね。
hiddenで埋め込むとかbuttonタグに変更してvalueにして埋め込むとか、何か区別をする情報を渡してやる必要があります。
確認ですが、/sample001/ProductUpdateで受け取った先にはA、Bを区別して表示させるような仕組みは組み込み済みでしょうか?

で、見た感じだと、入力した情報を送信して処理するではなく、あくまでAとBを区別して情報を表示するだけの画面に「遷移」しているだけのようなので、QueryStringだけ渡したGETでの画面遷移のほうが適当に思います。
※同じくrequestで受け取れます。

上記を踏まえると例えばこんな感じでしょうか。

jsp

1<td align="center"> 2 <form action="/sample001/ProductUpdate?id=${productList.product_id }"> 3 <input class="upd" type="submit" value="更新"> 4 </form> 5</td>

↑GETなのでformのactionに指定したのと同じURLでhrefで画面遷移しても良いです。

投稿2018/09/25 02:50

m.ts10806

総合スコア80765

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

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

mutani

2018/09/25 03:23

ご回答ありがとうございます。 説明が不足しており申し訳ございません。 一部質問を訂正いたしました。 また、ご確認くださいましたA,Bを区別する仕組みは組み込んでおりません。 ご回答くださいました内容を踏まえて実装してみます!
mutani

2018/09/25 06:02

先ほど実装することができました! 分かり辛い質問にもかかわらず、ご回答くださいましてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問