标准的javabean

首先javabean就是一个JAVA类,然后他是一个规范的类

1.他把所有的方法都设置成private

2.给所有的成员方法提供了get和set方法,并且将对应的变量首字母改成大写

3.同时还有一个不带参数的构造函数(方便去实例化)

4.不要使用裸体类(规范要求)



下面让我们来看一个简单的JavaBean

FirstJavaBean.java

import java.io.*;

public class FirstJavaBean {

private String FirstProperty = new String("");

public FirstJavaBean() {

}

public String getFirstProperty() {

return FirstProperty;

}

public void setFirstProperty(String value) {

FirstProperty = value;

}

public static void main(String[] args)

{

System.out.println("My First JavaBean!");

}

}

如果运行这个程序,就会出现下面的结果:

First JavaBean!

  这是一个很典型的JavaBean的代表,简单地解释一下,FirstProperty是其中的一个属性
(Property),外部通过get/set方法可以对这个属性进行操作,如果您写过VB的class的话,对
这个就再也熟悉不过了。Main方法是为了测试程序用的,写JavaBean可以先不必加入到Jsp程序中
调用,而直接用main方法来进行调试,调试好以后就可以在Jsp程序中调用了。

             JavaBeans 标签

在JavaServer Pages中调用JavaBean有三个标准的标签,那就是<jsp:useBean>, <jsp:setProperty>,以及<jsp:getProperty>。

<jsp:useBean>标签

可以定义一个具有一定生存范围以及一个唯一id的JavaBean的实例,这样JavaServer Pages通过id来识别JavaBean,也可以通过id.method类似的语句来操作JavaBean。
  在执行过程中,<jsp:useBean>首先会尝试寻找已经存在的具有相同id和scope值的JavaBean实例,如果没有就会自动创建一个新的实例。


<jsp:useBean       "counterBean"
             scope="作用范围page/request/session/application"    "application"
             class="包名.类名"    "bean.CounterBean" />


属性及定义:

Id
  id属性是JavaBean对象的唯一标志,代表了一个JavaBean对象的实例。

JavaServer Pages通过id来识别JavaBean,也可以通过id.method类似的语句来操作JavaBean

Scope

          属性代表了Javabean对象的生存时间,可以是page, request, session, 和
application中的一种。

Class
  代表了JavaBean对象的class名字,特别注意大小写要完全一致。

其实他就相当于

<%
bean.CounterBean counterBean = (bean.CounterBean)application.getAttribute("counterBean");
if(counterBean == null) {
 counterBean = new bean.CounterBean();
 application.setAttribute("counterBean", counterBean);
}

%>

<jsp:setProperty>标签

另一个标准的标签就是<jsp:setProperty>标签了,它主要用于设置bean的属性值。

<jsp:setProperty
    name="entry"
    property="numItems"
    param="numItems" />

属性及定义:

Name
  Name代表通过<jsp:useBean> 标签定义的JavaBean对象实例。(当useBean标签的id=setProperty/getProperty中的name时,就能进行读取,写入数据的操作)

Property

       这是个很重要的属性,代表了你想设置值的属性property名字。如果使用property=”*”,程序就会反复的查找当前的javabean的成员变量,并且匹配JavaBean中相同名字的属性property,并通过JavaBean中属性的set方法赋值value给这个属性。如果value 属性为空,则不会修改Javabean中的属性值。
Param
  Param属性代表了页面请求的参数名字,<jsp:setProperty>标签不能同时使用param和value。(那就是设置了两个参数了..当然不行..)


Value
  Value属性代表了赋给Bean的属性property的具体值。

<jsp:getProperty>标签

最后一个标签就是<jsp:getProperty>标签了.它可以得到JavaBean实例的属性值,并将他们转换为 java.lang.String, 最后放置在隐含的Out对象中. JavaBean的实例必须在<jsp:getProperty>前面定义.
<jsp:getProperty property=“propertyName” />
属性及定义
Name
  Name属性代表了想要获得属性值的Bean的实例,Bean实例必须在前面用<jsp:useBean>标签定义.
Property
  Property属性代表了想要获得值的那个property的名字