• ベストアンサー

ボタンクリック-JSP判断

kuro_73の回答

  • kuro_73
  • ベストアンサー率28% (33/117)
回答No.3

きっと、<INPUT TYPE="text">の中身は表示の時にビーンから与えるんですね? それで、<INPUT TYPE="text">の中身があってボタンを押すと、ビーンの中身をクリアして、もう一度同じページを表示する。 <INPUT TYPE="text">の中身が空でボタンを押すと次のページにいける。 もしこれが正しいとすれば、注意するべきは、 「同じJSPを表示」するときにサーブレットを介するのか、JSPに直接アクセスするのかということ。 Servletを介するのであれば、Servletの中でBeanの中身をクリアすればいいんですが、直接JSPの場合は、JSPの中で、Beanの中身をクリアしなければなりません。 JSPは、自分がはじめて呼ばれたのか、二回目に呼ばれたのかを判断するプログラムが必要となります。 やりたいことは、こんな感じでできると思います。 ただし、今手元にJavaScriptのリファレンスがないので、 if(txt.trim()=='') この部分はあやしいです。 trim()もあるかどうかわからないし、== ではなく、equalsかも・・ <form name=a> <input type="hidden" name="beanClear"> <input type="text" name="txt1"> <input type="button" onClick="check()"> </form> <SCRIPT LANGUAGE="javascript"> <!-- function check(){ var txt = document.a.txt1.value; //FORM a の txt1の値がブランクならば次のHTMLへ if(txt.trim()==''){ document.a.action = "/html/next.html"; }else{ // trueならば受け取ったJSPかServleでBeanの中身をクリアする document.a.beanClear.value= "true"; document.a.action = "/html/this.jsp"; } document.a.submit(); } --> </SCRIPT>

noname#2205
質問者

補足

>きっと、<INPUT TYPE="text">の中身は表示の時に >ビーンから与えるんですね? はい。そうなんです。 <INPUT TYPE = "text" NAME = "cd" size = "15" MAXLENGTH=2 value= "<jsp:getProperty name="wk" property="cd_text" />"> こんな感じです。 >それで、<INPUT TYPE="text">の中身があってボタンを押すと、 >ビーンの中身をクリアして、もう一度同じページを表示する。 ><INPUT TYPE="text">の中身が空でボタンを押すと次のページにいける。 そうなんです。説明が足りなくてすみませんでした。 そういうことが言いたかったんです。質問が伝わりませんよね。 ほんと、すみません。 >注意するべきは、「同じJSPを表示」するときにサーブレットを介するのか、 >JSPに直接アクセスするのかということ。 >Servletを介するのであれば、Servletの中でBeanの中身をクリアすればいいんですが、 >直接JSPの場合は、JSPの中で、Beanの中身をクリアしなければなりません。 >JSPは、自分がはじめて呼ばれたのか、二回目に呼ばれたのかを判断するプログラムが >必要となります。 えーと。。 私がやってたのは、JSPでボタンを以下のように作ります。 <INPUT TYPE = "submit" NAME="RTN" VALUE ="RTN"> そして、ServletがBeanのインスタンスを作成し、 Beanの中でテキストの入力有無を判断し、テキスト入力合った場合 同じJSPを表示しますのでSetメソッドを使って テキストをクリアし、セットします。 これは実行されるのですが、 テキスト入力がなかった場合は次のページに移動したいのに その動作ができません。 それは、ServlvetのdoPostメソッドで最後にJSPを呼び出す処理 があるからです。そのへんの処理を作りたいのですが。。。 Servletで次のHTMLに移動することはできますか? それとも、kuro_73さんが書かれたような スクリプトじゃないと難しいのでしょうか。。?

関連するQ&A

  • JSP + ラジオボタン

    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のタグを勉強しないといけないです。 @@@勉強不足です。

    • ベストアンサー
    • Java
  • JSP+Servletで終了ボタン

    JSPで、終了ボタンをクリックしたときに、 ブラウザを閉じる、といった処理は <INPUT TYPE = "submit" NAME="EXT" VALUE ="終了" onclick ="window.close();"> などでできるとあったのですが、 終了ボタンで、ページ(JSPではなく、 HTML)を移動する場合、onclick=以下に HTMLのアドレスを書いたらいいのでしょうか? やってはみたのですが、うまくいきませんでした。 うまくいかないというのは、 そのままServletにリクエストがわたるようで、 表示ページから何も移動しないということです。 また、<a href = "・・・></a>という リンクのタグもやってみましたが、 ランタイムエラーがでてしまいました。 何か外しているようでしたら、教えていただきたい のですが。。。。

    • ベストアンサー
    • Java
  • 携帯 JAVA JSP 画面遷移

    携帯のWebアプリを作成しており、ボタンごとに画面遷移させる方法を考えています。 以下はPC用に作成したJSP <script Language="JavaScript"> <!-- function inOut(flg){ if(flg){ lert("あ"); location.href='top.jsp'; }else{ alert("い"); location.href='top2.jsp'; } } // --> </script> <html> <head> <title>テスト</title> </head> <body> <form method="POST" action="top3.jsp"> <input type="button" name="in" onClick="inOut(true);" value="あ" /> <input type="button" name="out" onClick="inOut(false);" value="い" /> <input type="submit" name="back" value="う" /> </form> </html> 現状の問題点は2点あり、 1.携帯はJavaScriptが使用できない 2.<input type="button"~ とするとテキストボックスのような見栄え・機能になってしまう。 携帯Webアプリの場合、ボタンごとの画面遷移はどのように行えばよいのでしょうか?

  • jsp から servlet に

    パラメータをJSPからServlet に渡す所で、どうしても、null になってしまします‥。 主要な部分だけ書きます。 --jsp-- <jsp:useBean id="beanId" class="Bean" scope="request" /> <form method="POST" action="servlet"> <input type="submit" value="送信"> <input type="text" size="10" name="name"> --servlet-- import Bean; Bean bean = (Bean)request.getAttribute( "beanId" ); // ↑ここが、nullになってしまう。 --Bean-- public String getName() { return name; } public void setName( String name ) { this.name = name; } 考え方が違ってるかも知れないのですが‥。 よろしくお願いします。

    • ベストアンサー
    • Java
  • jspでファイルを読み込む

    jspでajaxを使ってファイルを読み込む処理がうまくいきません。 直接jspのページを見る場合、jspのアドレスが http://localhost:8080/xxx/sample.jsp となり処理もうまくいくのですが、javaのクラスファイル→sample.jspのようにサーブレットから値を受け取る場合にアドレスが http://localhost:8080/xxx/servlet/クラスファイル名?変数名=値 となり、この場合ファイルを読み込む処理がうまくいきません。 【ソースの一部】 function loadText(filename){ new Ajax.Updater( { success: "disp"}, filename, { method: 'get', onFailure: displayError} ); } <input type="button" value="ファイル読み込み" onClick="loadText('readfile.txt')"> <div id="disp"></div> readfile.txtのパスの書き方が悪いのかと思いいろいろ試しましたができませんでした。 アドバイスお願いします。

    • ベストアンサー
    • Java
  • jsp,servlet,beanの流れについて

    初歩の初歩の質問ですが、参考書等読んでいて混乱してしまっています。宜しくお願いします。 a.jsp(入力画面) a_servlet.java a_bean.java(setのみ) b.jsp(表示画面) b_servlet.java b_bean.java(get,setのみ) というファイルがある時のプログラムの流れは、 (1)a.jsp・・・画面を表示する。データを入力する。登録ボタンを押下する。 (2)a_servlet.java・・・(1)で登録ボタンを押下されたら、a.jspのデータを取得。a_bean.javaへ設定する。b.jspへ飛ぶ。 (3)a_bean.java・・・(2)によりデータが設定されている。 (4)b_servlet.java・・・a_bean.javaのデータを取得し、b_bean.javaに設定する。 (5)b_bean.java・・・(4)によりデータが設定されている。 (6)b.jsp・・・表示データをb_bean.javaより取得後、画面を表示する。削除ボタンを押下する。 (7)b_servlet.java・・・(6)で削除ボタンが押下されたらb.jspのデータを取得し、b_bean.javaへ設定する。 特にbファイルの処理順序で混乱しています。 上記のような流れで考え方は合っているでしょうか。 少々分かりずらいかもしれませんが、間違っていたら小学生でも分かるように教えてください。

    • ベストアンサー
    • Java
  • HPボタンの長さが異なる。

    下のボタンが マックの「IE4.5」「IE5.0」「ネスケ4.7」だとちゃんと奇麗に中央に表示されますが、 Windows「IE4.5」「IE5.0」はボタンの長さが異なり ガタガタになります。 windowsでも奇麗に並べるにはどうしたらいいのでしょうか? よろしくご指導お願いいたします。 テストでアップしてあるURLですのでご確認してください。 http://watn.jp/test/ <HTML> <HEAD> <TITLE>++++</TITLE> </HEAD> <!------------------- 中身-------------------> <center> 下のボタンがマックの「IE4.5」「IE5.0」「ネスケ4.7」だと<br> ちゃんと中央に表示されますが、Windows「IE4.5」「IE5.0」は<br> ボタンの長さが異なりガタガタになります。 <FORM> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='kituke.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='sadou.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇◇ " onClick="window.location.href='buyou.html'"><br> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='ivent.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='tenjikai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇       " onClick="window.location.href='butai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇      " onClick="window.location.href='honten.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇◇     " onClick="window.location.href='yono.html'"><br> </FORM> </center> </BODY> </HTML>

  • ボタンをクリックして、リンクを開きたい

    ボタンをクリックして、リンクを開きたいのですが <input type="button" value="yahooを表示する" onClick="location=http://www.yahoo.co.jp/"> をしても何も起りません。 出来れば、新しいブラウザで開きたくて、 <A href="http://www.yahoo.co.jp/" target="HOGE">yahooを表示する</a> と同じように、ボタンをクリックして開きたいので、ご教授お願いします。

    • ベストアンサー
    • HTML
  • ボタンの長さを変えたい(至急)

    <INPUT TYPE=BUTTON VALUE="最新100回グラフ" onClick="location.href='../grf/100.htm'"> <INPUT TYPE=BUTTON VALUE="最新50回グラフ" onClick="location.href='../grf/50.htm'"> このようなボタンの長さを揃えたいです。 スペースで調節するしかないのでしょうか?

    • ベストアンサー
    • HTML
  • JSPで使用不可

    JSPで表示しているテキストやボタンを (FORM INPUT TYPE のテキストもしくは Submitボタン) 使用不可にすることは可能でしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Java