JavaBeans component design conventions govern the properties of the class and govern the public methods that give access to the properties.
A JavaBeans component property can be:
Read/write, read-only, or write-only
Simple, which means it contains a single value, or indexed, which means it represents an array of values
A property does not have to be implemented by an instance variable. It must simply be accessible using public methods that conform to the following conventions:
For each readable property, the bean must have a method of the form:
PropertyClass getProperty() { ... }
For each writable property, the bean must have a method of the form:
setProperty(PropertyClass pc) { ... }
In addition to the property methods, a JavaBeans component must define a constructor that takes no parameters.
The Duke’s Bookstore application JSP pages bookstore.jsp, bookdetails.jsp, catalog.jsp, and showcart.jsp, all located at tut-install/javaeetutorial5/examples/web/bookstore2/web, use the tut-install/javaeetutorial5/examples/web/bookstore2/src/java/com/sun/bookstore2/database/BookDB.java JavaBeans component.
BookDB provides a JavaBeans component front end to the access object BookDBAO. The JSP pages showcart.jsp and cashier.jsp access the bean tut-install/javaeetutorial5/examples/web/bookstore/src/com/sun/bookstore/cart/ShoppingCart.java, which represents a user’s shopping cart.
The BookDB bean has two writable properties, bookId and database, and three readable properties: bookDetails, numberOfBooks, and books. These latter properties do not correspond to any instance variables but rather are a function of the bookId and database properties.
package database; public class BookDB { private String bookId = "0"; private BookDBAO database = null; public BookDB () { } public void setBookId(String bookId) { this.bookId = bookId; } public void setDatabase(BookDBAO database) { this.database = database; } public Book getBook() throws BookNotFoundException { return (Book)database.getBook(bookId); } public List getBooks() throws BooksNotFoundException { return database.getBooks(); } public void buyBooks(ShoppingCart cart) throws OrderException { database.buyBooks(cart); } public int getNumberOfBooks() throws BooksNotFoundException { return database.getNumberOfBooks(); } }