• ベストアンサー

JavaScriptからJAVAクラスを呼び出す

JavaScriptからJavaクラスのメソッドやコンストラクタを呼び出す事ってできるのでしょうか? 今、行おうとしているのが、テキストにて入力した後に日付編集(4200812 → H20. 8. 12に変換)処理を行うというものです。 初期表示時は、Javaクラスで変換して表示させるので、大丈夫なのですが、どうしても入力したタイミングで変換させるには、JavaScriptを使用しなければなりません。 そこで、JavaScriptに元号情報やJavaで記述した制御などを記載すればできると思いますが、面倒臭いので、JavaScriptからJavaクラスのメソッドが実行できればなと思います。 そのような事はできるのでしょうか?? JDKは1.6です。

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

  • ベストアンサー
  • Yohjira
  • ベストアンサー率66% (14/21)
回答No.3

まず、以下のことは理解しているでしょうか?  Java:サーバ側の処理  JavaScript:クライアント側の処理(ブラウザで処理される) 画面の読み込みが終わった段階で、すでにサーバ側の処理は終了しています。 画面操作からサーバ処理を起動するには、 何らかのサーバへ何らかのリクエストをしないとだめかなと。 例えば、テキストボックスのonchangeのタイミングで日付データを送信すれば、 その日付データをサーバ側で処理できますね。 方法としては、同じ画面をリロードさせるようにしたりとか、Ajaxを使ったりするとか。 (送信タイミングとしては、あまりよくないような気もしますが) でも変換するだけだったら、JavaScriptでやってしまってもいいかもしれませんね。 こちらの方が面倒ではないような気がします。

smiyamoto777
質問者

お礼

早速のご回答ありがとうございます。 すみません。自分の勉強不足でした。。。 JavaScriptでは、Javaクラスを読み込む事はできないみたいですね! ありがとうございました。

その他の回答 (2)

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

「Java」「JavaScript」は名前が似ていて勘違いしやすいのですが、全くの別物。 「JavaScript」上で「Java」のクラスインスタンスを生成したりはできません。 ただし、「Javaアプレット」なら「JavaScript」から制御することが可能みたいです。 (ここは詳しく無いので、どこまで制御できるのかはわかりません。)

smiyamoto777
質問者

お礼

早速のご回答ありがとうございます。 すみません。自分の勉強不足でした。。。 JavaScriptでは、Javaクラスを読み込む事はできないみたいですね! ありがとうございました。

noname#84373
noname#84373
回答No.1

変換だけならこれでだめ?(IE7) <HTML> <BODY> <input type="text" id="b" value="4200812"> <input type="button" value="⇒" onClick=" var n=document.getElementById('b').value.match(/^(\d{1})(\d{2})(\d{2})(\d{2})$/); if(n) document.getElementById('a').value=',M,T,S,H'.split(',')[n[1]]+'.'+n[2]+'.'+n[3]+'.'+n[4]; "> <input type="text" id="a" value=""> </BODY> </HTML>

smiyamoto777
質問者

補足

早速のご回答ありがとうございます。 すみません。自分の勉強不足でした。。。 JavaScriptでは、Javaクラスを読み込む事はできないみたいですね! ありがとうございました。

関連するQ&A

  • javascriptからjavaを呼び出したい

    javascriptの勉強中です。 javascriptでajaxを用いてjavaのメソッドにアクセスし、結果をjavascriptに返す、という実装をしたいのですが上手く行きません。 流れとしては以下のようなものを想定しています。 js /project/WebContent/js/testJS.js(画面の値を引数としてtestJavaクラスのtestMethodメソッドを呼び出す) ↓ java /project/src/java/jp/co/application/util/testJava.java(受け取った引数の値をtestDAOクラスのtestDAOMethodメソッドに渡す) ↓ java /project/src/java/jp/co/application/dao/testDAO.java(受け取った値を用いてDBにアクセスし、結果をjsに返す) まず技術的に、同じプロジェクト内のjavaメソッドをjs上で呼び出し、結果を受け取るということは可能なのでしょうか。 ご教示お願いします。

  • java.util.ArrayListクラスの継承

    Java5年ぶりでちょっと新しい仕様について教えてください。。 java.util.ArrayListクラスを継承したクラスを作成しようと思っているのですが、継承後のクラスでも ArrayListChild<E> というような記述を有効にするには、一体どのような処理をすればよいのでしょうか。 そもそも、<E>とコンストラクタの後などに付けるこの仕様、なんて名前の仕様なんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javascriptでオブジェクト思考は可能でしょうか?

    Javascriptでオブジェクト思考は可能でしょうか? クラスを作成して、変数を隠ぺいして、コンストラクタ・メソッドとか 継承などできるのでしょうか? 簡単なサンプルがあれば助かります。

  • Java2とは何ですか?

    Java2とは何ですか? 下記HPによると http://e-words.jp/a/Java2.html 『Sun Microsystems社のプログラミング言語「Java」の第2版。Java 2はJDK 1.2と呼ばれていたものの正式名称で、SunによるJava 2プラットフォーム対応のプログラミング環境や実行環境も含む。』 とあります。1.2以前が第1版ということなんでしょうか? なんか2の意味がよくわからんなーと思っています。 1.2の2の部分の2ではなくそれ以外にバージョンがあって2ということなんですよね?タブン。 Sunの資料を見たところ、1.5系ではまだ、J2SE 5.0と表記されたりしているようですが、1.6と1.7に関する記述では、Java SE6、Java SE7と「2」が完全に消えていました。 今後は「2」はきえるのかなーなどと思っています。 この辺のことについてお詳しい方よろしくお願いします。 質問 (1)Java2の2はどこから来ているのか。どういう意味合いでつけたのか。 (2)いつまでが1だったのか。(時期やバージョンなど) (3)1.6以降は2は使われなくなるのか

    • ベストアンサー
    • Java
  • クラスメソッドの問題

    春から情報系の大学に行くためjavaについて勉強しているのですが分からない問題が出てきたので質問します。 問題 1からnまでの奇数の和を求めるプログラムsumple.javaと和を計算するためのクラスメソッドSum及び結果を表示するためのクラスメソッドdisplayを用いて作成する。 Sumの戻り値と因数はともにint型とする。 なおdisplayの戻り値はvoid型、因数はint型が2つとする。 nの入力はコマンドライン引数を利用する 実行例 $ java sumple.java コマンドライン引数がありません! $ java sumple.java 100 1から100までの奇数の和は2500です。 このようになるのですがそのように作ればよいか全然わかりません。 回答お願いします

  • クラス中でコンストラクタを使わず変数に代入をする理由は?

    JAVAやJavascript、最近オブジェクト指向的な記述が可能になったphpなどの言語で次のようなクラス定義が可能です。 <JAVAの場合> class A { public int i1 = 1; public int i2; A() { i2 = 2; } } しかし最近覚えたC++では、例の「public int i1 = 1;」のようなクラスのスコープ内で代入を行うことは出来ず、その場所では「public int i2;」のように宣言のみ、代入はコンストラクタで行うようになっています。この場合はなぜ「public int i1 = 1;」はダメなのかと疑問に思っても「そういう仕様だ」と言われれば納得できます(やり方が1つだけなので)。 ではJAVAなどの言語で、例のような場所で「public int i1 = 1;」のような宣言と代入を行うことは、代入をコンストラクタを用いて行うこととどのような違いがあるのでしょうか?また、どちらが推奨されるのでしょうか?

  • 同一パッケージにあるクラスが見つからないエラー

    Tomcatとeclipseを用いてjspによるウェブアプリ開発の勉強をしているものです。 tagsrch.java内のメソッドに、同一パッケージ(フォルダ名:mangasearch)内のmangalist.javaで定義したmangaクラスというクラスを使いたいのですが、以下のように、シンボルが見つけられないというエラーが出てしまいます。 C:\(中略)\mangasearch>javac tagsrch.java tagsrch.java:11: エラー: シンボルを見つけられません public static List<manga> searchByKey(String k[]) throws IOException{ ^ シンボル: クラス manga 場所: クラス tagsrch tagsrch.java:14: エラー: シンボルを見つけられません manga[] list = new manga[cnum]; 同一パッケージ内に置かれている以上、tagsrch.javaにおいてmangaクラスが使えるはずだと思います。 ですが、いろいろなサイトを参考にして試してもmangaクラスが見つからないまま、tagsrch.javaがコンパイルできません。 初歩的質問で申し訳ありませんが、よろしくお願いいたします。 -参考- 1.いろいろ試したこと  1-1.カレントディレクトリを保存している場所より1つ上の場所でコンパイルする。  eclipseでtomcatプロジェクトを作成したため、どのクラスファイルにもpackage mangasearch;が含まれていました。なので1-1.を行い「javac パッケージ名/ファイル名」でコンパイルしてみました。  1-2.クラスパスを入れてコンパイルしてみる。  同一パッケージ内なので、この必要はないはずですが、  C:\(中略)\mangasearch>javac -classpath C:\(中略)\mangasearchでコンパイルしてみました。   下記のURLを参考にこの対策を講じましたが、エラーは変わりませんでした。  1-1.1-2.の参考URL:http://okwave.jp/qa/q2520327.html  1-3.メソッドをmangalist.java(mangaクラス)上で定義してしまう。  分割をあきらめ、tagsrch.java上のメソッドをmangalist.javaのmangaクラス上に定義してみました。 publicつけたままだと、 C:\(中略)\mangasearch>javac mangalist.java mangalist.java:76: エラー: クラスtagsrchはpublicであり、ファイルtagsrch.javaで宣 言する必要があります となったため、publicをとりました。するとコンパイルは出来ましたが、おそらく異なるパッケージからは使えないクラスとなったため、jsp上でアクセスできないというエラーが発生しました。 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.IllegalAccessError: mangasearch/tagsrch このため、分割してtagsrch.javaを宣言する必要があり、1-3.の対策では最初にあげたmangaクラスを認識する問題に帰着すると思われます。 2.mangalist.java/tagsrch.javaについて mangalist.javaのコンパイルはできています。 mangalist.javaは、ただ単にmangaクラスとそれに付随するフィールド、コンストラクタを記述しただけのファイルです。 ■mangalist.java package mangasearch; class manga{ フィールド名 ・・・    manga(){    //コンストラクタ    } } ■tagsrch.java public class tagsrch extends manga{ メソッド{     } }

    • ベストアンサー
    • Java
  • クラスの継承の仕方

    後学のため、JavaScriptについて勉強しています。 JavaScriptでもクラス(のようなもの)を定義してオブジェクトを作成できるようですが、サブクラスを定義する方法が分かりません。メソッドやコンストラクタはどのように継承すればよいのでしょうか。 お分かりの方おられましたら、ご教授のほどお願い致します。

  • JSPからJavaクラスを参照できない?

    サーブレットを勉強しています。Eclipseを使っています。 WEB-INF/src/m/to_do.java view/list.jsp というファイルがあるのですが、list.jspの中でto_doクラスを使いたいので、 <%@ page import="java.util.ArrayList" %> <%@ page import="m.to_do" %> <jsp:useBean id="list"scope="application"type="java.util.ArrayList<to_do>" /> と記述したのですが、java.util.ArrayList<to_do>のところで、 未定義型:to_do と出て、エラーが出てしまいます。 このJSPの中で、 to_do.getID(); など、to_doクラスのメソッドを呼び出す記述を書いても、やはりto_doを認識していないようです。 どうすれば、to_doクラスを読み込ませられるのでしょうか?

    • ベストアンサー
    • Java
  • ファイルからの入力 Scannerクラス

    ファイルの内容を読み込むプログラムをJavaで作成しています。 Scannerクラスを利用するため、以下のようにimport宣言しました。 package bc; import java.util.Scanner; class FileScanner {  コンストラクタ{   }  メソッド{   }    :    :  mainメソッド{   } } という感じで書いているのですが、この場合のメソッド名は、 Scannerクラスで定義されている名前でないとダメなのでしょうか? 自分で作った名前でメソッドを定義したのですが、 Scannerクラスで定義されていません。 というようなエラーが返ってきてうまくいきません。 どなたか、ご教授くださいm(_ _)m

    • ベストアンサー
    • Java