- PR -

JavascriptからJAVAをCALL

1
投稿者投稿内容
和也さん
ベテラン
会議室デビュー日: 2006/02/09
投稿数: 78
投稿日時: 2006-02-10 10:49
javaScriptからJAVAクラスを呼び出す方法ってありますか?
色々調べたのですがわかりません・・

WEBアプリはStrutsです

現状は
 リンク文字列をクリックし同ページ内のjavaScriptを呼び出す → <a href="javavoid(0)" onclick="ページ内のjavaScript()・・・
 上記で呼び出されたjavaScript内からwindow.open('***.do')でJAVAクラスをよびだす
 window.openで呼び出された、JSPページ(空ページ)が開く ←のJSPページは、開いた瞬間にwindow.close()を実行しているので、一瞬しかページは開かない

プログラム自体は正常に動作しているのですが、
 window.openしてますので、空ウィンドウが開いてしまいます。
 一瞬しか開かないので、ほとんど支障はないんですが、見た目的によくありません・・・

もっと簡単にJavaScriptからJAVAをCALLする方法はないのでしょうか?・・・
お忙しい中申し訳ないのですが、ご教授お願いします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-02-10 11:05
今、流行のAJAX風にXMLHttpRequestを使用してみるとか。。。



[ メッセージ編集済み 編集者: burton999 編集日時 2006-02-10 11:10 ]
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-02-10 11:16
何を狙ってるのかよく分かってないのでたぶん外してますが・・・

JAVAクラスを呼び出すというのが、JAVAで作った関数を使いたいというのだったら、アプレットにして張りつければ、javascript から ID でアクセス出来たと思います。

ただ、今までの投稿からすると、サーブレットからデータ取ってきたいのだと思いますが・・・
burton999さんの書かれた通りにAjax関連の技術を使う方法の他に、いくつか方法がありますので、どういうデータにアクセスしたいのか?を書くともっといい回答が得られると思いますよ。
(あと、ブラウザの情報もあった方が面白いレスつく可能性ありますね)

修正:
よく見るとStrutsとか書いてあるからWEBからデータを取ってくると解釈しちゃっていいんですね^^;
まぁ、その場合でもデータ形式によって何かあるかもしれませんから・・・

[ メッセージ編集済み 編集者: 冬寂 編集日時 2006-02-10 11:18 ]
和也さん
ベテラン
会議室デビュー日: 2006/02/09
投稿数: 78
投稿日時: 2006-02-10 13:01
すいません、説明不足でした。。。
処理としては、JAVAで作った関数を呼びたいです。
関数の中身は、単にテキストファイルを作成するといった処理です。
そのくらいのことならjavascriptで十分できるのですが、
勝手な事情で
JAVAクラス(自作)を呼ばなければならない状況なんです。。。
JAVAアプレットも使わない方向でお願いします。

ブラウザはIE6です。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-02-10 13:59
たとえば、
コード:
<script language="javascript">
<!--
 function hoge() {
   HogeClass hogeClass = new HogeClass();
   result = hogeClass();
}
//-->
</script>


 ってな感じでやりたい、ってことでしょうか?
 それはたぶん無理ではないかと。
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2006-02-10 14:34
テキストファイルの作成が『javascriptで十分できる』というところに引っ掛かりを覚えますが、
新しくJSPのページにリクエストを送ってもクライアントのウィンドウに変化を起こしたくないというのであれば、2つ方法があります。

1つ目はburton999さんがおっしゃったようにAjaxを使ってリクエストを送る方法。
2つ目はページ内に大きさ0のフレームを作ってそれをターゲットとして<form>をsubmitする方法です。

1つ目はまあ流行の先端技術ですが、その分クライアント側に要求されるブラウザの制限が厳しいです(IE6限定なら全く問題ありませんが)。また、まだ使った事が無いならある程度学習が必要になるかもしれません。
2つ目はAjaxが現れる前に使用されていたなんちゃって非同期通信の手法らしいのですが、私は使った事が無いのでできるとは断言しません。ちっちゃいフレームやインターナルフレームが見えているとかっこ悪いので、どうやってフレームを見えなくするかがポイントでしょう。
1

スキルアップ/キャリアアップ(JOB@IT)