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

JSP+Servlet+Beanで作ってます。
JBuilder5を使ってます。

JSPはラジオボタン、テキスト、ボタン等があります。
<INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A
<INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B
<INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C

としています。
たとえば、Bを選択時、ボタンクリックで
Servletにリクエストを送信しますが、
Servletから再びJSPを呼び出し、画面を
表示するとき、ラジオボタンはBを選択
させたいのですが、どうしたらいいですか?
FormタグのCHECKEDというオプションを
どのように使えばいいのか教えていただきたいのですが。


テキストには、Beanでsetメソッド、
JSPでは、<jsp:getProperty・・・>を使って
セットできているんですが、ラジオボタンも
同様ですか?
@@@・・・JSPのタグを勉強しないといけないです。
@@@勉強不足です。

A 回答 (4件)

あなたの文章が良く理解できないのですが、


つまりこう言うことをやりたいのですか?

****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って
よく使いますよね。だから、ラジオボタンでもつかえない
かなとおもいまして。。。
こういう使い方はしないのでしょうか??

補足日時:2001/08/15 14:48
    • good
    • 0

<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がでてきました。

うーん。なんかいい方法はないですかねえ。。。
もう少し調べてみます。

補足日時:2001/08/15 16:10
    • good
    • 0

すごく基本的なことですが、以前同様な経験をして「あっ!」と思ったことがあったので、一応確認させてください。



なんらかのスクリプトエラーでこのように、全てに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のエラーチェックに
かかります。
タグの書き方がおかしいんでしょうね。。

補足日時:2001/08/15 17:00
    • good
    • 0

<% %>のなかに


<jsp:getProperty name="wk" property="aaa" />
のようなJSPタグを使用することはできません。
これはエラーになります。

wkがBeanのインスタンス名、aaaがプロパティ名なので
<% if(wk.getAaa()==1){ out.print("checked");} %>

でよいと思いますが・・・

この回答への補足

何度も何度も申し訳ありませんでした。。


結果、できました!!!!

本当に今日はいっぱい質問してしまって
申し訳ありませんでした。。。

超がつく初心者なのでもっと勉強しなければ
と改めて思います。

kuro_73さん、本当に本当にありがとうございました。



##最初からこういうコーディングにしてて
エラーがでてます、と具体的に
書いておけばよかったです。
すみません。。。

補足日時:2001/08/15 17:47
    • good
    • 1

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