实际上,我的任务是在同一个包中创建 java bean 类并将它们用于 JSP(java 服务器页面)。
下面是我正在做的事情。
包名:mypack
*第一个类名:UserBean.java *(包含所有getter和setter方法)
第二个类名:Databean.java(包含与数据库交互的方法)
d:\java: jdk1.5和tomcat,两者都是在这个文件夹中。
UserBean.java: 我想使用这个类的setter和getter方法来设置和获取值。 DataBean.java:我想使用这个类的方法与 MS Access 数据库进行交互,如获取、更新、删除等。对于这些操作,我想将 UserBean 类对象实例化为 DataBean 类来设置和获取 DataBean 类的值。
我是如何编译的?
d:\java\mypack> 设置路径=d:\java\jdk1.5\bin
d:\java\mypack>javac UserBean.java
但是当我在 DataBean 类中实例化 UserBean 类的对象时,我得到了我已经提到的错误。
d:\java\mypack>javac DataBean.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页面上,我实例化了两个对象
<%@ 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>