当前位置: 首页 > 知识库问答 >
问题:

无法使用包将一个java类的方法转换为第二个类

仰英发
2023-03-14

实际上,我的任务是在同一个包中创建JavaBean类,并将它们用于JSP(java服务器页面)。

下面是我在做什么。

软件包名称:mypack*第一类名称:UserBean.java*(包含所有getter和setters方法)第二类名称:Databean.java(包含与数据库交互的方法)
d:\java: jdk1.5和tomcat,都在这个文件夹中。

UserBean.java:我想使用这个类的setter和getter方法来设置和获取值。DataBean.java:我想使用这个类的方法来与MS Access数据库交互,如获取、更新、删除等。对于这些操作,我想将UserBean类对象实例化到DataBean Class中,以设置和获取DataBean类的值。

我是如何编译的?

d:\java\mypack

但是当我在DataBean类中实例化UserBean类的对象时,我得到了我已经提到的错误。

d:\java\mypack

为了解决这个问题,我稍微修改了编译行:

d:\java\mypack

目前,这两个类都已成功编译。现在还有另一个问题,如下所述。

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>

共有2个答案

濮阳弘扬
2023-03-14

问题是,在DataBean类中,您创建了另一个UserBean安装,这与您在jsp页面中创建的安装不同。

在类数据库中尝试以下操作:

UserBean user = (UserBean)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("u");

“u”-是您想要使用的UserBean实例。

何麻雀
2023-03-14

方法getUsernameTwo()返回在DataBean的构造函数中创建的UserBean的用户名。此UserBean实例与您在JSP中实例化的UserBean对象不同。

这就像打开两个瓶子,在其中一个瓶子里放一条信息,然后在另一个瓶子里寻找你在第一个瓶子里放的信息。它不适用于瓶子,也不适用于Java对象,因为Java对象有点像真实的对象。

您可以做的一件事是让数据库使用在其cnstructor中传递的UserBean:

public class DataBean{
    private UserBean user;       

    public DataBean(UserBean user) {
        this.user = user;
    }

    public String getUsernameTwo() {
        return user.getUsername(); 
    }
}

在JSP中:

<%
UserBean u = new UserBean();
DataBean d = new DataBean(u);

u.setUsername("John");
out.println(u.getUsername());
out.println(d.getUsernameTwo());
%>

看起来你还没有掌握基本的OO概念。我建议在使用JSP之前,先开始学习基本Java和OO的教程。

 类似资料:
  • 我的customer.xsd如下所示。我正试图将它转换为pojo类schema_reference.4:未能读取模式文档“xml.xsd”,因为 1)找不到文件; 2)文件无法阅读; 3)文档的根元素不是。 我正在使用maven将XSD转换为Java clases。

  • 我从rest调用中获得了一个json,其格式为{“D1”:1,“D2”:1,“D3”:0,“D4”:1},它在db中存储为-{D1=1,D2=1,D3=0,D4=1}。 到目前为止我已经试过了,但没有成功- JSONParser parser=新的JSONParser();JSONObject json=(JSONObject)parser.parse(jsonString); 我想把这个json

  • 本文向大家介绍groovy 将方法转换为闭包,包括了groovy 将方法转换为闭包的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用&运算符将方法转换为闭包。            

  • 我有以下两种方法: 正如您所看到的,主体是相同的——我可以通过方法参数传递文件名。这些方法从JSON文件加载内容。他们身体上唯一的显著区别是所应用的课程类型<我想到了类似的事情: 但是我有错误: 我的dto-例如配置: 有可能在上述情况下应用泛型吗<对不起,如果这个问题没有意义,因为我只是在学习泛型

  • 问题内容: 我有一个名为GoogleWeather的类,我想将其转换为另一个CustomWeather类。 有没有可以帮助您转换类的设计模式? 问题答案: 需要做出一个关键决定: 您是否需要转换生成的对象以反映对源对象的将来更改? 如果您不需要这样的功能,那么最简单的方法是将实用程序类与静态方法一起使用,这些静态方法根据源对象的字段创建新对象,如其他答案所述。 另一方面,如果您需要转换后的对象来反

  • 问题内容: 我有包含我的上下文的课程。但是,当我编译时,在这一行中出现了另一个类: 类: 错误: AndroidManifest.xml: 问题答案: 您需要在清单中指定以使用自定义应用程序。 这是完整的