请问这样的.java算不算是javabean?
//Example 1:
public class myBean1{
public void myBean(){
//Constructor
}
public void other(){
}
}
//Example 2:
public class myBean2{
private int p1;
public void myBean(){
//Constructor
}
public void setP1(int value){
this.p1=value;
}
public int getP1(){
return this.p1;
}
}
//Example 3:
public class myBean2{
private int p1;
public void setP1(int value){
this.p1=value;
}
public int getP1(){
return this.p1;
}
}
//Example 4:
public class myBean2{
public void other1(){
...
}
public void other2(){
...
}
}
注意:上面的4个例子主要不是注意语法的问题!
在4个例子中有哪些是属于JavaBean,哪些不是属于Javabean?
|
唉,javaBean不一定要实现Serializable接口。
只有一点是一定要的,javaBean必须提供不带参数的构造函数。
一般因为jsp编译后的类和javaBean肯定不在同一个包中,所以javaBean也一定是public class,否则没有权限访问它。因此可以说满足以上条件的java类就可以算是一个javaBean.不信你可以去做个测试,很容易就能得到证明。不要只看到书中的部分内容。
另外如果你要使用jsp:getProperty和jsp:setProperty动作的话,一般你的javaBean中就要提供对应的set***()和get****()方法,因为那些动作会被jsp服务器翻译为javaBean.get***()的方法,如果你没有这些方法就会编译报noSuchMethod的错误。
如果你对jsp很熟,就会了解,那些和javaBean相关的jsp动作都可以翻译为一条条java语句。如:初始化时,就是执行以下语句:
test.AjavaBean a = new test.AjavaBean();
session.setAttribute("a",a);
然后在同一个会话(session)中,就用session.getAttribute("a")把它取出。实际上就是通过它的默认构造方法,获得一个类实例,然后把这个实例对象存放到session中(httpSession的实例对象,jsp叶面生成的时候自动帮你生成的)。
所以说,javaBean也就是很普通的java类,不过是多了些限制。不过既然jsp提供了一些便利的javaBean的动作,对java不是很熟的人,用它还是很方便的。否则大可不必去遵循javaBean的这些规范,完全用其他的java类也能实现了javaBean的所有功能。
|
一般认为,JavaBean在public class的基础上,存在public的不带参数的构造器,如:
public class A(){
public A(){}
.....
}
以使用于中,要不然就这样用:
(无论有没构造器及参数,均可当作普通CLASS如下用)
个人理解,请指教.
快点加分:)
|
同意 meeting(太阳雨)说的,
1.一般认为,JavaBean在public class的基础上,存在public的不带参数的构 造器,如:
public class A(){
public A(){}
.....
}
还有:
2.对它的属性定义了get**和set**方法,
3.没有公共的实例化变量。
参照这三点,可看出只有Example 2:才算是真正的javabean.
|
都算
|
都是比较简单的Bean.
|
个人认为,
javabeanpublic class
|
其实就想楼上说的javabeanpublic class
javabean叫这个名字主要用于jsp中的组件传输
通常要实现Serializable
|
觉得1,4不算吧
|
up
|
javaBean应该实现Serializable接口,所以应该都不算Bean