A especificação JavaBeans foi desenvolvida com o proposito de criar componentes gráficos, mas os JavaBeans representam um padrão de Design Patterns para componentes também sem rosto em um aplicativo do lado do servidor. Os componentes JavaBeans podem ser usado como blocos de construção em aplicações, assim, um usuário pode estar usando algum tipo de ferramenta de criação para se conectar e personalizar um conjunto de componentes para atuar como um aplicativo, por exemplo, um botão em uma aplicação gráfica seria um Bean.
Outros componentes JavaBeans são como aplicações regulares, que pode então ser criadas em conjunto em documentos compostos. Assim, uma planilha Bean pode ser incorporada dentro de uma página Web.
Especificações JavaBean: http://www.oracle.com/technetwork/java/javase/tech/spec-136004.html
Propriedades – Getter e Setter
Propriedades são atributos que afetam a aparência ou o comportamento de um Bean, em algumas linguagens de scripts estas são acessadas diretamente pelos campos de seu objeto, como em javascript:
objeto.label = "rotulo"; // escrita objeto.label; // leitura
Um JavaBean por convenção possui propriedades que devem sempre ser acessadas através de chamadas de métodos em seu objeto proprietário. Para propriedades legíveis haverá um método Getter para ler o valor da propriedade. Para propriedades graváveis haverá uma método Setter para permitir que o valor da propriedade seja atualizado:
objeto.setLabel("rotulo"); // escrita objeto.getLabel(); // leitura
Tipos de Propriedades JavaBeans
- Read-only – Somente métodos Getters.
- Write-only – Somente métodos Setters.
- Read/write – Getters e Setters.
Utilizando Propriedades de um Bean
Em paginas JSP podemos acessar os métodos Getter e Setter de um JavaBean através de propriedades das tags <jsp: / >, que também são conhecidos pelo nome de Scriptlets. Utilizamos um projeto do tipo Maven com o arquétipo Web App, mas caso você queira pode utilizar um projeto dinâmico para web. Crie uma pagina JSP e uma classe Java e utilize o código abaixo para cada respectivo arquivo:
1 – Você pode notar que o primeiro valor utilizado é inicializado no construtor do Bean, para isto você deve excluir a primeira chamada do método Setter da pagina JSP, utilize os comentários no código para saber mais onde excluir:
2 – Escrevendo a chamada do primeiro método Setter de volta na pagina JSP você estará definindo o valor para o Bean dinamicamente:
3 – Se você utilizar um parâmetro na URL do navegador o segundo método Setter irá definir um valor para a propriedade, use este exemplo e ao final da URL digite:
?parametro=Valor+Modificado+Pelo+parametro
Exemplo:
Neste exemplo criamos um JavaBean e utilizamos suas propriedades para definir e recuper valores em uma pagina JSP.
Java
package org.desenvolvimento.aberto; public class MeuBean { // Declara atributo private String nome; // Construtor da classe public MeuBean() { nome = "Desenvolvimento Aberto"; } // Método Getter public String getNome() { return nome; } // Método Setter public void setNome(String nome) { this.nome = nome; } }
JSP
<html> <head> <title>Desenvolvimento Aberto</title> <style type="text/css"> p { color:blue } </style> </head> <body> <!-- Inicializa o JavaBean --> <jsp:useBean id="meubean" class="org.desenvolvimento.aberto.MeuBean" /> <!-- Exclua está propriedade para utilizar o valor incializado no construtor do Bean --> <jsp:setProperty name="meubean" property="nome" value="Valor modificado pelo metodo Setter" /> <!-- Para usar o Setter utilizando um parâmetro: --> <jsp:setProperty name="meubean" property="nome" param="parametro" /> <h1>JavaBeans e Páginas JSP</h1> <h2>Propriedades - Getter e Setter</h2> <h4>Este é o valor do meu método Getter do Bean:</h4> <p> <jsp:getProperty name="meubean" property="nome" /> </p> </body> </html>