本文来自维基百科:http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions

JavaBeans是Java语言中能够反复使用的软件组件,它们是一种特殊的Java类,将非常多的对象封装到了一个对象(bean)中。

特点是可序列化,提供无參构造器,提供getter方法和setter方法訪问对象的属性。

长处:

  • Bean能够控制它的属性、事件和方法是否暴露给其它程序。
  • Bean能够接收来自其它对象的事件,也能够产生事件给其它对象。
  • 有软件可用来配置Bean。
  • Bean的属性能够被序列化。以供日后重用。

JavaBeans规范,要成为JavaBean类,则必须遵循关于命名、构造器、方法的特定规范。

有了这些规范,才干有能够使用、复用、替代和连接JavaBeans的工具。

规范例如以下:

  • 有一个公有的无參构造器。
  • 属性能够通过getsetis(能够替代get,用在布尔型属性上)方法或遵循特定命名规范的其它方法訪问。
  • 可序列化。

一个javabean的代码样例

package player;

public class PersonBean implements java.io.Serializable {

    /**
* name 属性(注意大写和小写)
*/
private String name = null; private boolean deceased = false; /** 无參构造器(没有參数) */
public PersonBean() {
} /**
* name 属性的Getter方法
*/
public String getName() {
return name;
} /**
* name 属性的Setter方法
* @param value
*/
public void setName(final String value) {
name = value;
} /**
* deceased 属性的Getter方法
* 布尔型属性的Getter方法的不同形式(这里使用了is而非get)
*/
public boolean isDeceased() {
return deceased;
} /**
* deceased 属性的Setter方法
* @param value
*/
public void setDeceased(final boolean value) {
deceased = value;
}
}

測试样例:

import player.PersonBean;

/**
* <code>TestPersonBean</code>类
*/
public class TestPersonBean {
/**
* PersonBean 类測试方法的main函数
* @param ARGS
*/
public static void main(String[] args) {
PersonBean person = new PersonBean(); person.setName("张三");
person.setDeceased(false); // 输出: "张三[活着]"
System.out.print(person.getName());
System.out.println(person.isDeceased() ? " [已故]" : " [活着]");
}
}

页面引用并使用javabean

<% // 在JSP中使用PersonBean类 %>
<jsp:useBean id="person" class="player.PersonBean" scope="page"/>
<jsp:setProperty name="person" property="*"/> <html>
<body>
姓名:<jsp:getProperty name="person" property="name"/><br/>
已故与否?<jsp:getProperty name="person" property="deceased"/><br/>
<br/>
<form name="beanTest" method="POST" action="testPersonBean.jsp">
输入姓名:<input type="text" name="name" size="50"><br/>
选择选项:
<select name="deceased">
<option value="false">活着</option>
<option value="true">已故</option>
</select>
<input type="submit" value="測试这个JavaBean">
</form>
</body>
</html>

[基础规范]JavaBeans规范的更多相关文章

  1. HTML&CSS基础-xHtml语法规范

    HTML&CSS基础-xHtml语法规范 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源码 <!DOCTYPE html> <html> ...

  2. JavaSript模块规范 - AMD规范与CMD规范介绍(转)

    JavaSript模块规范 - AMD规范与CMD规范介绍 JavaSript模块化 在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发? 模块化是指在解决某一个复杂问题或者 ...

  3. SOA体系结构基础培训教程-规范标准篇

    引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,SOA的标准化问题也成为各界日益关注的焦点 ...

  4. 4、SQL基础整理(规范函数)

    规范函数: 绝对值 select abs(-5) print abs(-5) 表中取绝对值的方法: select code,name,abs(chinese)as yuwen from xueshen ...

  5. 前端基础系列——CSS规范(文章内容为转载)

    原作者信息 作者:词晖 链接:http://www.zhihu.com/question/19586885/answer/48933504 来源:知乎 著作权归原作者所有,转载请联系原作者获得授权. ...

  6. Java基础之J2EE规范

    什么是J2EE? 在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮件服务,事务处理等.既然很多企业级应用都需要这些模块,一些大公司便开发了自己的通用模块服务,即中间件.这样一来,就避免了重复 ...

  7. Python基础:编码规范(4)

    1.命名规范 Python中不同代码元素采用不同命名方式: ◊ 包名:全部小写字母,中间可以由点分隔开.作为命名空间,包名需具有唯一性. ◊ 模块名:全部小写字母,如果是多个单词构成,使用下划线分隔. ...

  8. Java基础84 javaBean规范

    1.javaBean的概述 1.javaBeam(咖啡豆)是一种开发规范,也可以说是一种技术.  2.JavaBean就是一个普通java类,只要符合以下规定才能称作为javaBean:        ...

  9. java入门---基础语法&基础常识&编码规范&命名规范

        一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对 ...

随机推荐

  1. SimpleMembership

    最近2个月以来,一直在学习MVC,从最开始的2,一直到最新的4.从原来的aspx到现在的Razor引擎,越学越开心,越学越上瘾. 最近为新项目做准备,打算用MVC4,VS2012+SQL2012,反正 ...

  2. Linux 计划任务总结

    今天项目用到了,Linux计划任务,从网上找了基本blog看了,总结了下. Linux 下的计划任务有atd和crond两种计划任务.atd服务使用的at命令只能执行一次,而crond服务使用的cro ...

  3. 打印中文dict list的各种姿势

    在开发过程中,我们经常需要打印一些变量的值,便于调试.这个时候就会发现如果在dict list这些容器中,如果包含中文字符,不管是str类型,还是unicode类型,都打印不出来.如下: >&g ...

  4. 深入理解ES6之——迭代器与生成器

    迭代器 迭代器是被设计专用于迭代的对象,带有特定接口.所有的迭代器对象都有next方法,会返回一个结果对象.该结果对象有两个属性:对应下一个值的value,以及一个布尔类型的done,其值为true时 ...

  5. short s1 = 1; s1 = s1 + 1;有错而short s1 = 1; s1 += 1正确。为何?

    如果你认为表达式(x += i)只是表达式(x = x + i)的简写方式,这并不准确.这两个表达式都被称为赋值表达式.第二个表达式使用的是简单赋值操作符(=),而第一个表达式使用的是复合赋值操作符. ...

  6. angularJS的一些用法

    AngularJS 事件指令: ng-click/dblclick ng-mousedown/up ng-mouseenter/leave ng-mousemove/over/out ng-keydo ...

  7. 通用Adapter设计,SparseArray+泛型+回调的使用

    看到题目,我相信聪明的各位已经有一定想法了. 一个Adapter,最简单的优化就是使用泛型,他可以省去非常多的代码,不过在此之上,我们还可以继续优化,优化他的好基友是:ViewHolder. 在过去, ...

  8. cardview和Palette,ActionBar颜色随图改变

    CardView是一个控件,Palette是取色工具(工具类),本文会对他们进行比较细致的介绍,相信机制的各位看完一定轻而易举地实现ActionBar随图改变的特效. 首先看一下效果图: Gradle ...

  9. C/C++中如何接收return返回来的数组元素

    我们知道return语句作为被调用函数的结束,返回给调用者函数值.一般来说,是返回一个函数值,像一个int, double,char等类型的数据,当然也可以是他们的指针.但是当我们遇到要返回很多数怎么 ...

  10. eric6 中 designer 无法启动的解决办法

    1.安装环境:win10+python3.6+Eric6 2.问题:使用 pip install PyQt5 安装 PyQt5.9 版本后,发现 Eric6 中无法打开 designer.exe 工具 ...