- PR -

JSPから普通のクラスを使う

投稿者投稿内容
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2004-11-17 15:13
ServletやEJBを使わずに、普通のJAVAクラスをJSPから使いたいと思っています。サンプルを下に出します。

JSP

<%@ page import="パッケージ名.クラス名(例:ClassA).*" %>
<%
ClassA a;
%>
この時点ではエラーが出ません。しかし、

ClassA a = new ClassA();

と変更するとEclipseの方からエラーメッセージが出ます。

メッセージ:"cannot be resolved or not a type"

ClassA.javaは
場所:WEB-INF/src/パッケージ名/ClassA.java

に収容してあります。プロジェクトはTomcatプラグインを使ってます。Eclipseの設定の問題もしくはXMLの編集の問題なんだろうと思いますが、解決法が分からず往生しています。

宜しくお願いします。
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-17 15:17
<%@ page import="パッケージ名.クラス名(例:ClassA)" %>でしょう。
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2004-11-17 16:30
返信ありがとうございます。

一番最初の書き込みに問題がありましたので訂正しておきます。

例1:
<%@ page import="パッケージ名.クラス名(例:ClassA)" %>
<%
ClassA a;
%>

例2:
<%@ page import="パッケージ名.*" %>
<%
ClassA a;
%>

上記二つの例ではエラーが出ません。しかし:

ClassA a= new ClassA();

と変更するとエラーが出ます。ということでまだ解決に至っていません。ご指摘お願い致します。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-11-17 16:36
ClassAにはデフォルトコンストラクタはありますか? また、publicになっていますか?
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-17 17:00
lomboz Pluginを使っていますか?
私もEclipse3.0を使う時同じ現象が起こったことがあります。
でも無視しました。

問題は本当のソースの問題じゃなくてEclipseの環境の問題です。
WEBに配置してそのJSPファイルをブラウザで読んでみてください。
問題ないはずです。

もし気になりましたらEclipseのbinフォルダの中身をクリアしてすべてを
再コンパイルしてください。
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2004-11-17 17:39
返信ありがとうございます。

UKさんへ:
publicの設定でデフォルトコンストラクタを付けてあります。

影フリーさんへ:
Tomcatプラグインでプロジェクト製作、LombozでJSP製作をしています。ClassAは普通のファイルで、パッケージに入れてあります。無視してJSPを閲覧すれば:

HTTPステータス 500

のエラーがTomcatから返ってきます。TOMCAT_HOME下のbinフォルダーのファイルをTomcat運転中に動かそうとするとWin側から怒られ、Tomcatを止めてbinを空にすると再起動できませんでした。

なんだか手も足もでません。影フリーの以前の対処法が自分の環境では駄目なのかもしれません。ご指示していただければ嬉しく思います。
影フリー
常連さん
会議室デビュー日: 2004/11/12
投稿数: 39
お住まい・勤務地: 東京都
投稿日時: 2004-11-17 18:05
1.クリアするのはTomcatのbinじゃなくEclipseのbinです。
Eclipseの内部でコンパイルされたクラスが入ってます。
(最初プロジェクト作成時決める場所)

2.Eclipseコディング中に表示さるメッセージはTomcatとは関係有りません。
あくまで環境の問題です。

3.もし最初質問の時、タイピングのミスですか?
>ClassA.javaは
>場所:WEB-INF/src/パッケージ名/ClassA.java
WEB-INF/classes/パッケージ名/ClassA.classでしょう。
A.K.渡邉
常連さん
会議室デビュー日: 2004/11/15
投稿数: 30
投稿日時: 2004-11-17 18:40
返信ありがとうございます。

今日の自分には少々時間が足りませんので、
<jsp:useBean id="myBean" class="パッケージ名.ClassA" />
として、Bean扱いとして本日の代用案としました・・・(涙)。

こうすると普通のクラス扱いよりもリソースを取るんでしょうか?

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