[基础规范]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>