JSP - JavaBeans
Um JavaBean é uma classe Java especialmente construída, escrita em Java e codificada de acordo com as especificações da API JavaBeans.
A seguir estão as características exclusivas que distinguem um JavaBean de outras classes Java -
Ele fornece um construtor padrão, sem argumento.
Deve ser serializável e o que pode implementar o Serializable interface.
Pode ter várias propriedades que podem ser lidas ou gravadas.
Pode ter um número de "getter"e"setter"métodos para as propriedades.
Propriedades JavaBeans
Uma propriedade JavaBean é um atributo nomeado que pode ser acessado pelo usuário do objeto. O atributo pode ser de qualquer tipo de dados Java, incluindo as classes que você define.
Uma propriedade JavaBean pode ser read, write, read only, ou write only. As propriedades JavaBean são acessadas por meio de dois métodos na classe de implementação JavaBean -
S.No. | Método e Descrição |
---|---|
1 | peguePropertyName() Por exemplo, se o nome da propriedade for firstName , o nome do seu método seriagetFirstName()para ler essa propriedade. Este método é denominado acessador. |
2 | conjuntoPropertyName() Por exemplo, se o nome da propriedade for firstName , o nome do seu método seriasetFirstName()escrever essa propriedade. Esse método é chamado de mutador. |
Um atributo somente leitura terá apenas um getPropertyName() método, e um atributo somente gravação terá apenas um setPropertyName() método.
Exemplo de JavaBeans
Considere uma classe de aluno com poucas propriedades -
package com.tutorialspoint;
public class StudentsBean implements java.io.Serializable {
private String firstName = null;
private String lastName = null;
private int age = 0;
public StudentsBean() {
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public int getAge(){
return age;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public void setAge(Integer age){
this.age = age;
}
}
Acessando JavaBeans
o useBeanaction declara um JavaBean para uso em um JSP. Uma vez declarado, o bean se torna uma variável de script que pode ser acessada por elementos de script e outras tags personalizadas usadas no JSP. A sintaxe completa para a tag useBean é a seguinte -
<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
Aqui, os valores para o atributo de escopo podem ser um page, request, session ou application basedem sua exigência. O valor doid atributo pode ser qualquer valor, desde que seja um nome único entre outros useBean declarations no mesmo JSP.
O exemplo a seguir mostra como usar a ação useBean -
<html>
<head>
<title>useBean Example</title>
</head>
<body>
<jsp:useBean id = "date" class = "java.util.Date" />
<p>The date/time is <%= date %>
</body>
</html>
Você receberá o seguinte resultado - -
The date/time is Thu Sep 30 11:18:11 GST 2010
Acessando propriedades JavaBeans
Junto com <jsp:useBean...> ação, você pode usar o <jsp:getProperty/> ação para acessar os métodos get e o <jsp:setProperty/>ação para acessar os métodos definidos. Aqui está a sintaxe completa -
<jsp:useBean id = "id" class = "bean's class" scope = "bean's scope">
<jsp:setProperty name = "bean's id" property = "property name"
value = "value"/>
<jsp:getProperty name = "bean's id" property = "property name"/>
...........
</jsp:useBean>
O atributo name faz referência ao id de um JavaBean previamente introduzido no JSP pela ação useBean. O atributo de propriedade é o nome doget ou o set métodos que devem ser chamados.
O exemplo a seguir mostra como acessar os dados usando a sintaxe acima -
<html>
<head>
<title>get and set properties Example</title>
</head>
<body>
<jsp:useBean id = "students" class = "com.tutorialspoint.StudentsBean">
<jsp:setProperty name = "students" property = "firstName" value = "Zara"/>
<jsp:setProperty name = "students" property = "lastName" value = "Ali"/>
<jsp:setProperty name = "students" property = "age" value = "10"/>
</jsp:useBean>
<p>Student First Name:
<jsp:getProperty name = "students" property = "firstName"/>
</p>
<p>Student Last Name:
<jsp:getProperty name = "students" property = "lastName"/>
</p>
<p>Student Age:
<jsp:getProperty name = "students" property = "age"/>
</p>
</body>
</html>
Vamos fazer o StudentsBean.classdisponível em CLASSPATH. Acesse o JSP acima. o seguinte resultado será exibido -
Student First Name: Zara
Student Last Name: Ali
Student Age: 10