アプリ版:「スタンプのみでお礼する」機能のリリースについて

JSPで、データが一覧表示されたフォームから、個々のデータの修正を行うプログラムを作成しています。そこで、一覧表示画面から、選択したデータの修正用の画面に遷移する際、パラメータが渡らずに、NULLでエラーとなってしまいます。
一覧表示部分のソースは以下のようになっています。
-------------------------------------
<TABLE CLASS = "noborder" width = "70%">
・・・
<%
while (rs.next()){
%>

<TR>
<TD>
<a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>
<input type="hidden" name = "cat_id" value = "<%= ("cat_id") %>">
</TD>
<%
}
%>

</TABLE>
-------------------------------------
修正フォームのパラメータの受け取り部分のソースは以下のようになっています。
-------------------------------------
<%
Statement stmt = conn.createStatement();
String sql = "select cat_id, cat_name from quest_cat " +
"where cat_id ="+ request.getParameter("cat_id");
ResultSet rs = stmt.executeQuery(sql);

%>
-------------------------------------
お知恵を拝借できればと思います。よろしくお願いします。

A 回答 (2件)

ぱっと見て動かないことはないと思うのですが、


どうやって「パラメータが渡らずに、NULLでエラーとなってしまいます。」
と判断したのでしょう?

request.getParameter("cat_id");

で取得される値が本当にnullになっているのでしょうか?
それとは無関係にDB接続などでエラーになっているのではないですよね。
エラーの内容を表示してくれますか?

それと、気になるのは修正画面に遷移するときには、
<a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>
のリンクをクリックするのですよね?

たぶん省略しているのだと思いますが、cat_idには値をセットしていますか?
もうひとつ、
<input type="hidden" name = "cat_id" value = "<%= ("cat_id") %>">
このhidden部分はなにに使われるんでしょうか?
リンクをクリックするのでしたら、hiddenは使用されないし、
そもそも固定で"cat_id"という文字列が入ると思うのですが。

一覧表示画面をブラウザで表示したときに、ブラウザの機能で、
「ソースを表示」を使って、自分の意図したHTML出力になっているか
確認してみるといいですよ。
    • good
    • 1
この回答へのお礼

返信が送れてすみません。
どうしてNULLだと思ったかと言うと、サーバの方で出力されるエラーで「NullPointerException」と出たので、パラメータかと思ったのですが。

<input type="hidden" name = "cat_id" value = "<%= ("cat_id") %>">は、次の画面へ遷移する際にパラメータを渡すのに必要と思い付加したんですが、リンクでidを持つので、確かに必要ないはずですね。
指摘されるまで気づきませんでした。

cat_idには値を入れています。

一覧表示をソースで見てみましたが、明かにおかしかったので、もう一度JSPのソースを見なおしてみます。

ありがとうございました。

お礼日時:2002/08/30 18:43

> <a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>




<a href = "dai_update.jsp?cat_id=<%=cat_id%>">修正</a>

ということではないですか?

HTML の世界では、スクリプトを除いて、文字列を「+」することはできまへん。

後、form の中に無いなら type="hidden" な input は意味が無いですね。
期待通りに動かないこととは関係ないですが。
    • good
    • 0
この回答へのお礼

返信遅れましてすみません。

ご指摘の通りで、<%= %>を付加し忘れてました。

hiddenも、下記の方に指摘された通り、必要ありませんでした。

もう一度JSPのソースを見なおします。

ありがとうございました。

お礼日時:2002/08/30 18:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!