- ベストアンサー
JSP+Servlet+Beanで作成する方法とセット方法
- JSP+Servlet+Beanを使って作成する方法と、ラジオボタンのセット方法について教えてください。
- JSPにはラジオボタン、テキスト、ボタンなどがあります。Bを選択時にラジオボタンを選択状態にする方法を教えてください。
- Beanでのセット方法やJSPでのタグの使い方について勉強しているが、ラジオボタンについての理解が不足しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<% %>のなかに <jsp:getProperty name="wk" property="aaa" /> のようなJSPタグを使用することはできません。 これはエラーになります。 wkがBeanのインスタンス名、aaaがプロパティ名なので <% if(wk.getAaa()==1){ out.print("checked");} %> でよいと思いますが・・・
その他の回答 (3)
- kuro_73
- ベストアンサー率28% (33/117)
すごく基本的なことですが、以前同様な経験をして「あっ!」と思ったことがあったので、一応確認させてください。 なんらかのスクリプトエラーでこのように、全てにcheckedがついていませんか? <INPUT TYPE="radio" NAME="FLG1" VALUE="A" checked>A <INPUT TYPE="radio" NAME="FLG1" VALUE="B" checked>B こうすると、一番最後のradioのチェックが有効になりますが・・・
補足
すみません。 3番目にCHECKEDがあるというのは、 みてみると、タグの間違いでした。 しかし、結局、エラーになってしまいます。 <INPUT name="r1" type=radio value=1 <% if(<jsp:getProperty name="wk" property="aaa" /> ==1){ out.print("checked");} %> > A というかんじにしたいんですが、 コーディング途中でJBuilderのエラーチェックに かかります。 タグの書き方がおかしいんでしょうね。。
- kuro_73
- ベストアンサー率28% (33/117)
<INPUT name="r1" type=radio value=1 <% if(aaa=="1"){ %> checked <% } %> > のように表示したければ、まず <INPUT name="r1" type=radio value=1 <% if(aaa.equals("1")){ out.print("checked") } %> > このように書き直す必要があります。 aaaの値を<jsp:getProperty・・・>って、ようはBeanから持ってきた値をaaaに代入したいという意味ですよね? kanayuさんのやり方で多分大丈夫だと思いますが。。。 あまりjsp1.0は使用したことがなくてよく分からないんです。 JSPタグもホンの基本しか使わず、Beanを使うときは、sessionにBeanを付加して、 <% %>の中でsessionからsession.getValue()しているので・・ No.1で回答したやり方で、Beanもsessionにくっつけられるので、 もし、kanayaさんのやり方で上手くいかなければ、これも試してみてください。
補足
有り難うございます。 >aaaの値を<jsp:getProperty・・・>って、 >ようはBeanから持ってきた値をaaaに代入したいという意 >味ですよね? >kanayuさんのやり方で多分大丈夫だと思いますが。。。 やってみたんですが、結局3つめのラジオボタンに ずっとチェックがある状態でした。 (3つめのボタンにCHECKEDをつけているような状態でした。) それで、kuro_73さんが書かれたNo1のコードを 試してみたのですが、 いくつかでエラーとなってしまいました。 session.putValue("checkA" ,"checked"); のputValueで警告がでました。 String checkA = (String)session.getValue("checkA"); のgetValueで警告がでました。 それぞれ、setAttribute,getAttributeにおきかえて 実行してみましたが、Error500がでてきました。 うーん。なんかいい方法はないですかねえ。。。 もう少し調べてみます。
- kuro_73
- ベストアンサー率28% (33/117)
あなたの文章が良く理解できないのですが、 つまりこう言うことをやりたいのですか? ****Servlet**** doGet(HttpServletRequest req, HttpServletResponse res){ //処理 HttpSession = session //セッションを取得・・trueだったら新規セッションを作る session = req.getSession(false); String aaa = req.getParameterValues("r1"); //セッションに値をput if(aaa.equals("ins")){ session.putValue("checkA" ,"checked"); session.putValue("checkB" ,""); session.putValue("checkC" ,""); }else if(aaa.equals("upd")){ session.putValue("checkA" ,""); session.putValue("checkB" ,"checked"); session.putValue("checkC" ,""); }else if(aaa.equals("del")){ session.putValue("checkA" ,""); session.putValue("checkB" ,""); session.putValue("checkC" ,"checke"); } //JSPを表示 } ****JSP**** <% HttpSession session = request.getSession(true); <% HttpSession session = request.getSession(false); String checkA = (String)session.getValue("checkA"); String checkB = (String)session.getValue("checkB"); String checkC = (String)session.getValue("checkC"); %> <INPUT TYPE = "radio" NAME = "r1" VALUE = "ins" <%=checkA>>A <INPUT TYPE = "radio" NAME = "r1" VALUE = "upd" <%=checkB>>B <INPUT TYPE = "radio" NAME = "r1" VALUE = "del" <%=checkC>>C
補足
分かり難い質問、文章、申し訳ありません。 また、答えてくださって有り難うございます。 やりたかったのは、JSPのなかで IF文を用いて、GetPropertyした値を 判断し、CHECKEDがつけれるか、といったことです。 <INPUT name="r1" type=radio value=1 <% if(aaa=="1"){ %> checked <% } %> > こういうタグの使い方をしようと 試みたんですがうまくいかないのです。 というのは、 <% if(aaa=="1"){ ・・・・ のaaaにあたる値を <jsp:getProperty name="wk" property="syori_no" /> でとってきた値にしたいのです。 テキストでは、このgetPropertyって よく使いますよね。だから、ラジオボタンでもつかえない かなとおもいまして。。。 こういう使い方はしないのでしょうか??
補足
何度も何度も申し訳ありませんでした。。 結果、できました!!!! 本当に今日はいっぱい質問してしまって 申し訳ありませんでした。。。 超がつく初心者なのでもっと勉強しなければ と改めて思います。 kuro_73さん、本当に本当にありがとうございました。 ##最初からこういうコーディングにしてて エラーがでてます、と具体的に 書いておけばよかったです。 すみません。。。