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

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

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

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

3回答

4697閲覧

Servlet から Servlet への値の受け渡しについて

退会済みユーザー

退会済みユーザー

総合スコア0

servlet

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2016/04/26 01:04

編集2022/01/12 10:55

データベースから読み込んだ値で、
表と編集ボタンを作りました。

編集したい人物の編集ボタンをクリックした人物の、
名前やメールアドレスを
次のページの入力ホームに初期値として渡すことをしたいです。

どのようにしたらよいでしょうか?

<表のイメージ>
氏名 | メールアドレス | |
ーーーーーーーーーーーーーーーーーーーー
太郎 | taro@aaa | 編集 |
花子 | hana@aaa | 編集 |

<編集画面のイメージ> 花子の編集ボタンをクリックした場合、、、

氏名 花子 ←編集可能

メールアドレス hana@aaa ←編集可能

<DBを読み込んで一覧表をつくる>
try {
// DBの読み込み
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
sql = "SELECT * PERSON";
rs = stmt.executeQuery(sql);

// DBの内容を一覧表にして表示する out.println( "<style type=\"text/css\">.table {border-collapse: collapse;}.table th {background-color: #00ccff;</style>"); out.println( "<table class=\"table\" border=1><tr><th width=\"210\">氏名</th><th width=\"230\">メールアドレス</th><th width=\"100\"></th></tr>"); while (rs.next()) { String name = rs.getString("PERSON_NAME"); String mail = rs.getString("MAIL"); out.println("<tr><td>"); out.println(name + "</td><td>" + mail); out.println( "</td><td><input type=\"button\" value=\"編集\"onClick=\"location.href='http://localhost:8080/Projects/Edit'\"></td></tr>"); } out.println("</table>"); rs.close(); stmt.close(); } catch (ClassNotFoundException e) { out.println("ClassNotFoundException:" + e.getMessage()); } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } catch (Exception e) { out.println("Exception:" + e.getMessage()); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } } out.println("</form></CENTER></body></html>"); out.close(); }

<編集ボタンが押された人物のデータを編集する>

out.println( "<form method=\"post\" action=\"RequestServ\"><table border=\"0\"><tr><td align=\"left\"><b>氏名<body><font size=\"3\" color=\"#ff0000\" required><b>※</b></font></body>&nbsp;&nbsp;&nbsp;</b></td><td><input type=\"text\" name=\"name\" size=\"25\" maxlength=\"25\" value=\"name\"></td></tr>"); out.println( "<tr><td align=\"left\"><b>メールアドレス<body><font size=\"3\" color=\"#ff0000\"><b>※</b></font></body>&nbsp;&nbsp;&nbsp;</b></td><td><input type=\"text\" name=\"pass\" size=\"25\" maxlength=\"25\"></td></tr>");

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

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

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

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

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

guest

回答3

0

方針としては、一覧画面で選択した人物の情報を受け取って、その人物の情報をDBから検索してその内容を生成しているHTML内に含めればよいでしょう。

一覧で選択した人物をどのように特定して編集画面に表示するかについては、もっとも簡単な方法として、選択した人物のID(番号)で扱う方法でしょう。

投稿2016/05/18 06:26

A-pZ

総合スコア12011

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

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

0

質問のソースコード部分はソースコード用のタグでくくると読みやすいですよ。

元のページから編集画面のサーブレットへパラメータをPOST送信するのが良いかと思います。
編集画面のサーブレットではPOSTパラメータを受け取り、HTML出力時に初期値として設定してください。

  • 元のページ(HTML部分のみ)

HTML

1<form action="[編集画面のURL]" method="POST"> 2 <input type="hidden" name="name" value="[名前の値]" /> 3 <input type="hidden" name="email" value="[メールアドレスの値]" /> 4 <input type="submit" value="編集" /> 5</form>
  • 編集ページ(HTML部分のみ)

HTML

1<form> 2 <input type="text" name="name" value="[POSTパラメータで受け取った名前の値]" /> 3 <input type="text" name="email" value="[POSTパラメータで受け取ったメールアドレスの値]" /> 4</form>

投稿2016/05/18 06:14

takyafumin

総合スコア2335

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

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

0

セキュリティのことを考えて、DBアクセスはクライアント側でしない方がいいです。
あと、out.println()でhtmlを形成してしまうと、間違いに気づきにくいので、
HTMLはjspにそのまま書き、java処理は<%~%>で入れ込むようにした方がいいです。

編集画面は、別ウィンドウで開くのでしょうか?
それとも、次のページに遷移して表示するのでしょうか??

投稿2016/04/26 01:40

kaputaros

総合スコア1844

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

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

退会済みユーザー

退会済みユーザー

2016/04/26 01:47

ありがとうございます。 とりあえずは、JSPなしでやるということなので。 編集画面は、次のページに遷移して表示します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問