QA@IT

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

2814 PV

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

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

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

<表のイメージ>
氏名 | メールアドレス | |

ーーーーーーーーーーーーーーーーーーーー
太郎 | 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>");

回答

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

の内容が何を示しているのかわかりませんが(編集ページ?)

onClick=\"location.href='http://localhost:8080/Projects/Edit'\"

と、編集Click時にjavascriptのlocation.hrefでページを変更していますが、それでは値を渡す事は出来ません。
編集ページと同様にFormを使って編集ページに遷移する様にしてください。


その他本題と関係ありませんが気になったこと。
一度に色々とりくむと混乱するでしょうから、ひと段落したら取り組むといいと思います。

  • fontタグやbタグを文字の見た目に使う事は今はしませんのでCSSを使える様になったほうがいいでしょう。
  • まずはhtmlとcssだけに絞って、文字サイズ、太字、文字色だけ覚えるのもいいかもしれません。
  • bodyタグを閉じた後にタグを書いている。
  • いずれはjspにも手を出してみるといいでしょう。
編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。