実際、私の仕事は、同じパッケージ内にJava Beanクラスを作成し、それらをJSP(Javaサーバーページ)で使用することです。
以下は私がしていることです。
パッケージ名:mypack
* 1番目のクラス名:UserBean.java *(すべてのgetterおよびsetterメソッドを含む)
2番目のクラス名:Databean.java(データベースと対話するためのメソッドを含む)
d:\ java: jdk1.5およびtomcat、どちらもこのフォルダにあります。
UserBean.java: このクラスのsetterメソッドとgetterメソッドを使用して、値を設定および取得したいと思います。 DataBean.java:このクラスのメソッドを使用して、フェッチ、更新、削除などのMS Accessデータベースと対話します。これらのアクションでは、UserBeanクラスオブジェクトをDataBeanクラスにインスタンス化して、DataBeanクラスの値を設定および取得します。
どのようにコンパイルしていますか?
d:\ java \ mypack> set path = d:\ java \ jdk1.5 \ bin
d:\ java \ mypack> javac UserBean.java
しかし、DataBeanクラス内でUserBeanクラスのオブジェクトをインスタンス化すると、すでに述べたエラーが発生します。
d:\ java \ mypack>javacDataBean.java
ここで上記のエラーメッセージが表示されます
この問題を解決するために、コンパイル行を少し変更しました。
d:\ java \ mypack> javac -classpath .. DataBean.java
これは機能し、クラスファイルを正常に生成します
今のところ、両方のクラスが正常にコンパイルされています。現在、別の問題があり、以下で説明します。
package mypack;
**//UserBean.java**
public class UserBean{
String username; //an attribute of UserBean Class
String password; //an attribute of UserBean Class
public UserBean(){} //Default Constructor of UserBean Class
public void setUsername(String username){ this.username = username; }//setter method
public String getUsername(){return username; } //getter method
}
package mypack;
**//DataBean.java**
public class DataBean{
UserBean user = new UserBean(); //Instantiating UserBean class object in
//DataBean class
String username; //an attribute of DataBean Class
public DataBean(){} //Default Constructor of UserBean Class
public String getUsernameTwo(){return user.getUsername(); } //gettter method
}
jspページで、2つのオブジェクトをインスタンス化しました
<%@ page import="java.sql.*, mypack.*"%> //importing packages
<html>
<body>
<%
UserBean u = new UserBean(); *//UserBean class object u has been instantiated*
DataBean d = new DataBean(); //DataBean class object d has been instantiated
u.setUsername("John"); //username has been set as john
out.println(u.getUsername()); //gets the string john, and prints it successfully
(prints: John)
out.println(d.getUsernameTwo()); //Does'nt print John, but prints null
//**(it should print john too but it doesnt)**
%>
</body>
</html>