Javaにおけるonclickメソッドとは?

このQ&Aのポイント
  • Javaにおけるonclickメソッドの使い方や処理の実現方法について解説します。
  • サーブレットやjspを使用してJavaでonclickを実現する方法について説明します。
  • Databasebean.javaを使ったデータベース接続の方法や、JSPファイルを使用したデータベースの表示方法についても説明します。
回答を見る
  • ベストアンサー

Javaにおけるonclickメソッド

環境としては Java 6 MySQL 5.5 Windows 7 と 8 です。 リンクをクリックしたらサーブレットやjspで処理させたページを表示させたいと思っています。 例、 ------------------------------------------------------------------------------- 映画サイト アクション ヒューマン ラブストーリー SF ドキュメンタリー DB側 作品名 ジャンル 制作年 監督名 aaaaa アクション 2012 あああ bbbbb SF 2000 いいい ccccc ラブストーリー 2009 ううう dddd アクション 1998 えええ アクションというハイパーリンクをクリックするとジャンルが アクションのデータのみ表示させる。 ------------------------------------------------------------------------------ javaとデータベース接続のコードは分かっているのですが、 クリックしたら処理したページに行くと言う部分が分かりません。 JavaScriptにあるonclickですが、Javaにあるのでしょうか? androidとは関係なくサーブレットなどでonclickを使いたいのですが、どんなコードを書けば 実現できるでしょうか? Databasebean.java(データベースに接続するBeanファイル) -------------省略---------------------------- リクエストを受け付けるサーブレット側 import mybeans.*; import javax.servlet.*; import javax.servlet.http.*; public class AAAAA extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { try{ ServletContext sc = getServletContext(); Databasebean cb = new Databasebean (); request.setAttribute("cb", cb); sc.getRequestDispatcher("/BBBB.jsp ") .forward(request, response); } catch(Exception e){ e.printStackTrace(); } } } HTMLとして表示するJSPファイル側 名前 BBBB.jsp <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.util.*" %> <jsp:useBean id="cb" class="mybeans. Databasebean" scope="request"/> <%! ArrayList colname; ArrayList data; %> <% colname = cb.getColname(); data = cb.getData(); %> <html> <head> <title>データベース表示</title> </head> <body> <center> <h2>Welcome</h2> <hr/> 表を表示します<br/> <br/> <table border="1"> <tr bgcolor="#E0C76F"> <% for(int column=0; column<colname.size(); column++){ %> <th> <%= (String) colname.get(column) %> </th> <% } %> </tr> <% for(int row=0; row<data.size(); row++){ %> <tr> <% ArrayList rowdata = (ArrayList) (data.get(row)); for(int column=0; column<rowdata.size(); column++){ %> <td> <%= rowdata.get(column) %> </td> <% } %> </tr> <% } %> </table> </center> </body> </html> 以上よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

リンクをクリックしてからsubmitするところまではHTMLとJavaScriptで書きます。 これは通常の静的に作成したページでも、 ServletやJPSで動的に作成したものでもかまいません。 質問の例ではジャンル=アクションというパラメータで サーブレットのURLにsubmitするところまでをHTMLとJavaScriptで書きます。 サーブレットはHttpServletRequestからパラメータを取り出して、 所定の条件で検索して表示用のページを生成します。

KAIJI-000
質問者

お礼

回答有難うございます。もう少しネットや本などで調べてみます。もし、ドンピシャで載っているサイトや本があれば、教えていただけると助かります。実はもう2週間ぐらいネットを調べているのですが中々なくて困り果てています。

KAIJI-000
質問者

補足

<FORM METHOD="post" ACTION="サーブレットのアドレス" name="form1"> <A HREF="#" onClick="f=document.form1;f.fnc.value='abc'; f.submit();">リンク文字</A><BR><BR> <INPUT TYPE="hidden" NAME="fnc" VALUE=""> </FORM> としてみたのですが、エラーで HTTPステータス 405 - HTTPのPOSTメソッドは、このURLではサポートされていません。 と出てしまいました。

関連するQ&A

  • JSPの内容をcssで自由にデザイン

    Java 6 HTML 4.01 Windows 7 です。 以下のコードですが、cssでセルの1列目だけ色を変えたいのですが、どうすればいいでしょうか? 今は<td class="aiueo">を入れただけなので、全ての列の色が変わってしまっています。 <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="java.util.*" %> <jsp:useBean id="cb" class="mybeans.Beanファイル名" scope="request"/> <%! ArrayList colname; ArrayList data; %> <% colname = cb.getColname(); data = cb.getData(); %> <html> <head> <title>サンプル</title> </head> <body> <center> <h2>ようこそ</h2> <hr/> Welcome!<br/> <br/> <table border="1"> <tr bgcolor="#E0C76F"> <% for(int column=0; column<colname.size(); column++){ %> <th> <%= (String) colname.get(column) %> </th> <% } %> </tr> <% for(int row=0; row<data.size(); row++){ %> <tr> <% ArrayList rowdata = (ArrayList) (data.get(row)); for(int column=0; column<rowdata.size(); column++){ %> <td class="aiueo"> <%= rowdata.get(column) %> </td> <% } %> </tr> <% } %> </table> </center> </body> </html>

    • 締切済み
    • CSS
  • javaでDBから取得したデータのJSP表示

    JAVAでDBから取得し ArrayList shikakuCdList = shikakuCd_Data(); request.setAttribute("shikakuCdList", shikakuCdList); JSPでコンボボックスに表示しようと思います <% ArrayList bumonlist = (ArrayList)request.getAttribute("bumonCdList");%> <% for ( int i = 0; i < bumonlist.size(); i++ ){%> <option value=" (1)ここの記述方法も  "></option> <% }%> という記述にしていますが、うまく動きません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAでHTML数値を参照する方法

    java(JSP,サーブレット)を始めたばかりで、よくわからなく お教えねがえないでしょうか java(JSP+HTML)からjava(JSP,サーブレット)には request.getParameter()でデータを参照することは 出来たのですが、 JSP(HTML+javascript)の構成の場合 HTMLのinput文(value)とjavascript 変数を <% JSP %>の中でどのように記述したらデータを参照出来る のでしょうか

    • ベストアンサー
    • Java
  • Java Struts ~に対するゲッターメソッドがありません

    Java Struts WindowsXp Java Struts共に初心者です。 上記を使用してログイン画面を作成しています。 エラーが発生しているのですが 「Bean LoginFrm のプロパティ id に対するゲッターメソッドがありません」 と言われます。 参考サイトはいくつもあるのですが、そもそもイテレータを使用していないとか私の状況に一致する回答を見つけることができませんでした。 (JAVA、Struts共に慣れていないためか応用がきかないみたいです) loginTop.jsp login.jsp LoginFrm.java LoginAct.java struts-config.xml のいずれかが原因だとは思うのですが、そのどこかが皆目見当もつきません。 loginTop.jsp----------------------------- <html:form action="/login"> <table border="0"> <tr><td> ログインID<html:text name="LoginFrm" property="id" size="6" maxlength="5" /> </td></tr> <tr><td> パスワード<html:password name="LoginFrm" property="pass" size="6" maxlength="5" /> </td></tr> </table> </html:form> login.jsp---------------------- <html:form action="/login"> <table border="0"> <tr><td> A:<bean:write name="LoginFrm" property="id" /> </td></tr> <tr><td> B:<bean:write name="LoginFrm" property="pass" /> </td></tr> </table> </html:form> LoginFrm.java---------------------- private String id; private String pass; public String getID() { return id; } public void setID(String id) { this.id = id; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } LoginAct.java-------------------- throws Exception { request.setCharacterEncoding("Windows-31J"); LoginFrm logFrm = (LoginFrm) form; log.info(" user = "+logFrm.getID()); log.info(" user = "+logFrm.getPass()); return mapping.findForward("login"); } struts-config.xml--------------------------- <form-beans> <form-bean name="LoginFrm" type="loginForm.LoginFrm" /> </form-beans> ~ <action attribute="LoginFrm" input="/pages/loginTop.jsp" name="LoginFrm" path="/login" type="loginAction.LoginAct" scope="request" validate="true"> <forward name="login" path="/pages/login.jsp" /> </action> 以上です。 かなり長くなり申し訳ありません。

    • ベストアンサー
    • Java
  • java JSP/サーブレット

    Javaの参考書をやったのですが(参考書:やさ○いJava)、これはアプレットと聞きました。アプレットは現場では殆ど使われないと聞き、JSP/サーブレットは現場で使うと聞いたのでJSP/サーブレットをやっています。 でも、構文が少し違います。 *********************************** 例えば、Javaなら表示するときには System.out.printlnでしたが、 JSP/サーブレットでは違う構文です。 また、Javaならファイルが一つしかありませんでした。(コンパイルするとclassファイルができる) JSP/サーブレットは、スーパークラスやサブクラスは 別のファイルになっています。 ************************************ JSP/サーブレットはプログラム言語なんですか? JSP/サーブレットの中にもJavaの構文があるんですが、先にも述べたようにJavaと違う構文も含まれています。 ちょっと戸惑っています。 しかも、JSP/サーブレットに関する参考書が本屋さんで殆ど見られないのです。 お勧めの参考書などあればいいのですが、 数が少ないためか見当たりません。 それで、とりあえづ「10日で覚○るJSP/サーブレット」という本を買ったのですが、9割がたJSPです。 1割がサーブレットです。 こうなってくると意味がわからなくなってきます。 現場ではサーブレットと聞いていたのに、そのサーブレットが1割しか載っていない。え!?どういうこと!?更にはJSPとサーブレットの書き方も少し違うような気が・・・・。 もう何が何かさっぱりわからなくなってきました。 結局何を勉強すれば良いのか? そもそも、JSPとは?サーブレットとは? ネットで調べはしたもののピンときません。 現場でJavaをやりたいのですが、独学方法というか、 アドバイスを宜しくお願いします。

    • ベストアンサー
    • Java
  • サーブレットからJSPへ情報を渡す

    サーブレットからJSPへ情報を渡すことについて質問がございます。 ■質問は、ブラウザからサーブレットにリクエストして      モデルからデータを取り出しJSPがモデルを参照して      ブラウザに結果を表示し、ブラウザの画面のボタンを      クリックすると、またサーブレットにリクエストが      いくようにしたいのですが、      そのJSPから二度目のサーブレットへのリクエスト及び      リクエストする際にデータを渡すのですが、      JSPからサーブレットへ飛んでくれず404エラーがでます。      ★どうしたら、JSPからサーブレットへ飛んで       くれるでしょうか? ■簡単な流れでかきますと   リクエスト(hidden value="patu") ブラウザ  →  サーブレット  →  モデル ←→ テキスト           ↓           ↑(参照)   ブラウザ ← ← JSP →→→→→  上記の流れは一回の流れですが、次JSPからまたサーブレットへ  actionし、(hidden value="patu")をして同じ流れを  くりかえしたいのです。 ■JSPではどのようになっているかと申しますと <form action="http:://localhost:8080/sotu/TextServlet"method="POST"> <input type="image" src="NEXTquiz.gif" value="次の問題"     onclick="http://localhost:8080/sotu/TextServlet'"> <iuput type="hidden" name="patu" value="yonyc.getPatu()"> </form> となっております。 ■サーブレットでは protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {  String kye = request.getParameter("patu");//value受け取り MondaiSC mondaisc = new MondaiSC(); //モデルクラス生成  mondaisc . mondaisc.DefaultQuiz(kye, i); //モデルにキーを渡す ArrayList textList = mondaisc.getTextList();  //モデルクラスからテキストの情報が入っているArrayListを受ける り  HttpSession session =request.getSession();//sessionに入れる  session.setAttribute("text",textList);  RequestDispatcher rd =getServletContext().getRequestDispatcher("/yomi.jsp"); } このyomi.jspからまたサーブレットへ同じリクエストをおくりたいの です。  ところが飛んでくれません。  恐らく、JSPでの記述の仕方に問題があるのではないこと思っており ますが、どなたかアドバイスをお願い致します。  宜しくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットからArrayListにBeanを格納しJSPで使用する方法

    はじめまして、以下の問題ですが、わからず困っているので 質問させていただきます。 PCはWindowsXPで Eclipse Version: 3.4.1を使用し Tomcat5.5,jre6を使用しています。 研修の課題なのですが サーブレット内でBeanをArrayListを使って、動的確保したものを JSPに渡し、ArrayListに入ったBeanを取り出し、 そのBeanにsetした値を表示させるというプログラムを作っています。 JSPの部分がまったくわかりません。 JSPに配列はわたったようなのですが、JSPでのArrayListの取り出し方 などが、調べてもまったく解決しません。 もしわかる方がいましたら、教えてください。よろしくお願いします。 内容は以下です。 ///////////サーブレット//////////////////////////// ArrayList<Beans> beansid = new ArrayList<Beans>(); i=0; while(rs.next()){  sid = rs.getInt("sid");  sname = rs.getString("sname");  spass = rs.getString("spass");  Beans inbean = new Beans();  inbean.setsid(sid);  inbean.setsname(sname);  inbean.setspass(spass);  beansid.add(inbean); } request.setAttribute("beansid",beansid); //Beansクラス///////////////////// public class Beans{ private int sid; private String sname; private String spass; public int getsid(){ return sid; } public void setsid(int sid){ this.sid = sid; } public String getsname(){ return sname; } public void setsname(String sname){ this.sname = sname; } public String getspass(){ return spass; } public void setspass(String spass){ this.spass = spass; } } //JSPのコード///////////////////////////////// <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <jsp:useBean class="java.lang.String" id="beansid" scope="request"/> <%@page import="keiji.Beans"%> <%@page import= "java.util.*" %> <%@page import="java.sql.*"%> <%@page import="javax.servlet.*"%> <%--下のclassの所はBeansというのでも試してみました。--%> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <%-- ArrayList beansid = (ArrayList)request.getAttribute("beansid"); --%> <%-- Iterator it = beansid.Iterator(); --%> ArrayList Iteratorと使ってみたのですが、 自分にはわけが分からず、JSPを実行したとき、処理がとまってしまいます。

  • arraylist 二次元配列

    こんにちは 今アレイリストの二次元配列を学習しています DBからデータを取得で表示したいと思っています そこでfor文の拡張とつかうとうまくいうのですが 普通に記述するとうまくいきません 拡張FOR 文を使うのは初めてなので 何が違うかアドバイスお願いします コンパイルできません↓ if(request.getAttribute("list")!=null || request.getAttribute("list1")!=null || request.getAttribute("list2")!=null){ ArrayList<ArrayList> hai = new ArrayList<ArrayList>(); ArrayList list = (ArrayList)request.getAttribute("list"); if (list != null) { hai.add(list); } ArrayList list1 = (ArrayList)request.getAttribute("list1"); if (list1 != null) { hai.add(list1); } ArrayList list2 = (ArrayList)request.getAttribute("list2"); if (list2 != null) { hai.add(list2); } for (int i = 0; i < hai.get(0).size(); i++) { %> <table border="3"> <tr> <% for (int k = 0 ; k <= hai.size(); k++) { %> <td width="60"> <% out.print(hai.get(i)); } %> コンパイルOK 表示できています <% if(request.getAttribute("list")!=null || request.getAttribute("list1")!=null || request.getAttribute("list2")!=null){ ArrayList<ArrayList> hai = new ArrayList<ArrayList>(); ArrayList list = (ArrayList)request.getAttribute("list"); if (list != null) { hai.add(list); } ArrayList list1 = (ArrayList)request.getAttribute("list1"); if (list1 != null) { hai.add(list1); } ArrayList list2 = (ArrayList)request.getAttribute("list2"); if (list2 != null) { hai.add(list2); } for (int i = 0; i < hai.get(0).size(); i++) { %> <table border="3"> <tr> <% for (ArrayList list4 : hai) { %> <td width="60"> <% out.print(list4.get(i)); } %> <br> </tr> </table> <% 上のソースの エラーメッセージ 2013/04/16 9:24:12 org.apache.catalina.core.ApplicationDispatcher invoke 致命的: サーブレット jsp のServlet.service()が例外を投げました java.lang.IndexOutOfBoundsException: Index: 2, Size: 2 よろしくお願いします

    • ベストアンサー
    • Java
  • リクエストからArrayListのデータが取得出来ない

    いつもお世話になっております。 表題の通り、リクエストからArrayListのデータが取得出来ないのです。 javaで、 ArrayList cmArray = new ArrayList(); データベースからデータ取得 request.setAttribute("category",cmArray.toArray()); jspで ArrayList list = new ArrayList(); list = (List)request.getAttribute("category"); と取得しようとしています。 そうすると、java.lang.ClassCastExceptionが発生してしまいます。 どなたか分かる方がいましたら、ご教授下さい。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • フォーワードでのjava.lang.IndexOutOfBoundsExceptionエラー

    サーブレットの request.getRequestDispatcher("/data.jsp").forward(request,response); の部分で以下のエラーがでます。 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 org.apache.jasper.JasperException: Index: 0, Size: 0 許容を超えてリクエストに値が入ってしまっているようなのですが、 これは、どういった場合おこりえるのでしょうか。 分かる方がいましたら、教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java