• 締切済み

リンク元の値の取得

JSPでデータを管理するようなものを作りたいと思っています。 まず検索画面で年・月・日・時間が検索できるようにselect文で設定しています。 結果画面では検索画面で年だけ選択の場合は年ごとに月まで選択したときにはその年の月ごとに表示させます。 そして困っているのはココからなんですがたとえば 検索結果が 2004年 0人 5人 2005年 4人 2人 となっているときに2004年をクリックできるようにしてクリックしたときには2004年を月単位で表示させたいのです。 つまり 1月  5人 1人 2月  4人 3人 3月  0人 0人 というようにです。 このクリックしたときにクリック元(この場合は2004年)の情報をどうやって渡すか、また取得するか悩んでいます。 もちろん、最初の検索画面からの検索結果が出るソースと2004年をクリックしもっと詳細を表示させる画面のソースは同じものを使いたいと思っています。 とても困っていますのでご存知の方宜しくお願いします。

みんなの回答

  • dayowl
  • ベストアンサー率56% (84/148)
回答No.1

ご質問の内容から察するとJavascriptのカテゴリではなく、Javaのカテゴリですね。 JSPはJavascriptではありません。 ご質問についてですが、 画面のソースに同じものを使うことも可能ですが、別々にしたほうが分かりやすくなると思います。 year.jsp 2004年 0人 5人 2005年 4人 2人 を表示するJSP month.jsp 2004年 1月  5人 1人 2月  4人 3人 3月  0人 0人 を表示するJSPで表示するには「year=2004」というターゲットの西暦値が必要。 こういうふうに分けておくと、あとから 「やっぱり2004年をクリックしたら表の下にパラッと月のデータがプルダウンしたほうがいい」 とか 「別ウインドウでポップアップさせたい」などの要求に応じて変更するときに対応しやすかったりします。 ですので、私の場合は、見る目的が異なる画面は別ソースにするようにしています。 値の受け渡しについてですが、JSPではHttpServletRequestのインスタンスに「request」でアクセスできます。 つまり、 まずyear.jspを表示させて、その画面中で <a href="month.jsp?year=2004">2004年</a> のようなリンクを作っておくと month.jspのスクリプトで String clicked_year = request.getParameter("year"); このように書くことで、「2004」という値が渡されます。 もちろん、year.jspの中で <a href="year.jsp?year=2004">2004年</a> というように自分自身にパラメータを渡すこともできます。 但し、上記の方法では、 (1)英数字以外の文字はいちいちURLエンコードしなければならない (2)GETを許可していないサーバーでは使えない (3)渡せるパラメータの文字数に制限がある などの問題がありますが、西暦の値だけ渡したいのであれば、これで十分かと思います。 その他の値の受け渡し方法としては <form name="parameter" method="POST" action="month.jsp"> <input type="hidden" name="year"> </form> のようにフォームを作って、「2004年」をクリックしたらJavascriptで、hiddenオブジェクト「year」に「2004」という値をセットして、 document.parameter.submit() とする方法や、 HttpSessionを使ってオブジェクトごと受け渡すこともできますが、まだいろいろと学習中のようですから、あまりお薦めではありません。

jun2249
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A