- - PR -
チェックボックスとラジオボタンが複合する場合のパラメータ
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-25 20:34
いつもお世話になっています。
以下のことが出来なくて困っています。 (不躾ですみませんが、説明文を書くより図で書いてみます。 webページになりますが、こんな感じの画面です。 radiobutton ↓ ↓ ------------------------------------------ |チェックボックス|大会日|参加する|参加しない| ------------------------------------------ | ■ |0301 | ● | ○ | ------------------------------------------ | ■ |0302 | ● | ○ | ------------------------------------------ | □ |0303 | ○ | ● | ------------------------------------------ | □ |0304 | ● | ○ | ------------------------------------------ | □ |0305 | ○ | ● | ------------------------------------------ ------ |登録| ------ 登録ボタンを押下した時、 受け取りたいパラメータとして、 @大会日付 Aradiobuttonの値 です。 チェックしたレコードのみ受け取りたいのです。 しかし、各レコードのradiobuttonのNAME属性をユニークにしていますので、 受取側では、上記の場合 @大会日付:0301、0302 Aradiobuttonの値:0(0303分)、0(0305分)、1(0301分)、1(0304分)、1(0302分) です。@、Aとも順不同で送られてくることは知っているのですが、 そもそも、チェックした数=2に対して、radiobuttonの値の数=5 というのが、困っています。 しかし、この画面構成は変えれません。 理想としては、 @大会日付:0301、0302 Aradiobuttonの値:1(0301分)、1(0302分) です。 どうすればいいのしょうか。 | ||||||||||||
|
投稿日時: 2004-03-25 21:21
チェックされているレコードのラジオボタンの情報のみPOSTする
ブラウザを作ればいいじゃん。 というのは極論ですが、POSTされるデータをどうこうするより、 送られてくるデータをうまく処理することを考える方がいいのでは? それがいやなら Web じゃなくってクライアントサーバ型でやった方が ムリがなくていいでしょう。 私であれば、チェックボックスとラジオボタンの値に相関性を持たせて、 リクエストを処理するサーブレット等でチェックされているレコードの ラジオボタンの値、というものを判別します。 どうしても余計なデータは送信したくないのであれば、JavaScript で、登録ボタンクリック時に、必要なデータだけでリクエストパラメータ を作成して、GETするか、FORM の hidden にうめこんでPOSTするという 無理矢理な方法があります。私ならやりませんが。 | ||||||||||||
|
投稿日時: 2004-03-26 19:33
私もその方向で考えていきたいと思います。 考えとして
です。 しかし、 受取側のServletのgetParameterところでエラーになります。 エラーの箇所は分かったのですが、解決策が分かりません。 どなたか教えていただけないでしょうか。 エラー内容は [CODE] description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NullPointerException at sankaActual.UpSankaPersonServlet.doPost(UpSankaPersonServlet.java:59) at sankaActual.UpSankaPersonServlet.doGet(UpSankaPersonServlet.java:31) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) [CODE] です。 以下は受取側のソースです。 【送り側JSP】
【受取側Servlet】
| ||||||||||||
|
投稿日時: 2004-03-26 20:29
null になりそうなものを、軒並み System.out.println() してみてはどうですか?
こんなデバッグ、人に押し付けちゃ駄目ですよ・・・。 | ||||||||||||
|
投稿日時: 2004-03-26 20:37
みなさん、失礼しました。
すべて出してみたんです。で、 upListSankaFlg[i] = request.getParameter(upListTntDate[i]);←ここでエラーになっています。 と判断したんですが。 でくのぼうさんが言う通りかもしれませんが、どうしても分かりません。 もう少し詳しく教えていただけないでしょうか? | ||||||||||||
|
投稿日時: 2004-03-26 20:43
なんだか切羽詰っておられそうなので、サクッと回答します。
ここが変です。 null を指してる配列に値を入れようとしてます。 | ||||||||||||
|
投稿日時: 2004-03-26 20:56
でくのぼうさん、解決しました。
大変ありがとうございます。 受取側のServletを
に修正しました。 これでnullを指す配列ではなくなりました。 ということですよね。 また、勉強になりました。 ありがとうございました。 | ||||||||||||
1
