[基础规范]JavaBeans规范
本文来自维基百科:http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions
JavaBeans是Java语言中可以重复使用的软件组件,它们是一种特殊的Java类,将很多的对象封装到了一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。
优点:
- Bean可以控制它的属性、事件和方法是否暴露给其他程序。
- Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
- 有软件可用来配置Bean。
- Bean的属性可以被序列化,以供日后重用。
JavaBeans规范,要成为JavaBean类,则必须遵循关于命名、构造器、方法的特定规范。有了这些规范,才能有可以使用、复用、替代和连接JavaBeans的工具。
规范如下:
- 有一个公有的无参构造器。
- 属性可以通过get、set、is(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问。
- 可序列化。
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>