2010-11-25 21 views
14

He estado haciendo algunos tutoriales JSP y no entiendo cuál es el objetivo de una clase de bean. Todo lo que es, es obtener y establecer métodos. ¿por qué los usamos?¿Cuál es el punto de los frijoles?

public class UserData { 

String username; 
String email; 
int age; 

public void setUsername(String value) 
{ 
    username = value; 
} 

public void setEmail(String value) 
{ 
    email = value; 
} 

public void setAge(int value) 
{ 
    age = value; 
} 

public String getUsername() { return username; } 

public String getEmail() { return email; } 

public int getAge() { return age; } 

}

y la JSP es

<jsp:useBean id="user" class="user.UserData" scope="session"/> 
<HTML> 
<BODY> 
You entered<BR> 
Name: <%= user.getUsername() %><BR> 
Email: <%= user.getEmail() %><BR> 
Age: <%= user.getAge() %><BR> 
</BODY> 
</HTML> 
+0

Relacionados: http://stackoverflow.com/questions/1727603/places-where-java-beans-used. Sin Javabeans terminarías con 'Object []' o 'Object [] []' o 'Map ', etc., que está lejos de ser reutilizable y auto-documentable, o incluso nada (código fuertemente acoplado) lógica). – BalusC

Respuesta

11
  1. un Bean obtiene todos los beneficios del paradigma de Java "de una sola escritura, ejecutar en cualquier lugar". Se pueden controlar las propiedades, los eventos y los métodos de un Bean que están expuestos a una aplicación herramienta de creación.

  2. Un Bean puede diseñarse para funcionar correctamente en diferentes lugares, lo que lo hace útil en los mercados globales.

  3. Se puede proporcionar un software auxiliar para ayudar a una persona a configurar un Bean. Este software es solo necesario cuando se establecen los parámetros de tiempo de diseño para ese componente. No es necesario incluir en el entorno de tiempo de ejecución. La configuración de configuración de un Bean se puede guardar en el almacenamiento persistente y restaurar en otro momento.

  4. Un Bean puede registrarse para recibir eventos de otros objetos y puede generar eventos que se envían a otros objetos.

El uso de scriptles (aquellos <% %> cosas) es de hecho nada recomendable, desde el nacimiento de taglibs (como JSTL) y EL (Expression Language, esos ${} cosas) más una década atrás. Las principales desventajas de scriptles son:

  1. Reutilización: no se puede reutilizar scriptles.

  2. Reemplazabilidad: no se pueden hacer scriptlets abstractos.

  3. OO-habilidad: no puede hacer uso de la herencia/composición.

  4. Debuggability: si scriptlet lanza una excepción hasta la mitad, todo lo que obtiene es una página en blanco.

  5. Testabilidad: los scriptlets no son verificables por unidad.

  6. Capacidad de mantenimiento: por saldo se necesita más tiempo para mantener la lógica del código mezclado/desordenado/duplicado.

1

Usted puede tener JSP sin granos, sin embargo, el resultado será que tanto el código de cuidado de la lógica y el código de cuidado de la estética de la el sitio se confundirá. Esto no es ideal especialmente porque en la mayoría de las situaciones, un grupo de personas codifica la lógica y otro grupo de personas se ocupa de la estética, por lo que los frijoles permiten un grado de separación que facilita la vida de las personas que construyen el sitio web.

Los frijoles también le permiten reutilizar el código, que es otra razón por la que debe usarlos.

5

La razón principal de JavaBeans es reusability. JavaBeans se puede utilizar en JSP, Servlets y otras tecnologías de Java.

Es un objeto serializable simple que se utiliza para encapsular muchos objetos en uno. Es decir, podemos enviar un bean completamente definido para enviar cada atributo individualmente a través del cable.

3

Los métodos de acceso (getter) y mutador (setter) generalmente se usan para proporcionar encapsulamiento. Como las variables de instancia son privadas, solo se puede acceder fuera de la clase a través de estos métodos.

So In layman: la capacidad de hacer cambios en su código de implementación sin romper el código de otros que usan su código es beneficio clave de la encapsulación.

2

Estaba leyendo JavaFX Properties and Binding allí Obtuve prácticamente el significado de JavaBeans aquí está el párrafo.

El lenguaje de programación Java hace que sea posible encapsular los datos dentro de un objeto, pero no impone ninguna denominación específica convenciones de los métodos que se definan. Por ejemplo, su código podría definir una clase Person, que encapsula un primer nombre y un apellido . Pero sin nombrar las convenciones, los diferentes programadores pueden elegir diferentes nombres para estos métodos: read_first(), firstName(), getFN(), etc. serían todas elecciones perfectamente válidas. Sin embargo, existe sin garantía de que estos nombres sean significativos para otros desarrolladores.

La arquitectura del componente JavaBeans solucionó este problema por definiendo algunas convenciones simples de nomenclatura que traen consistencia entre los proyectos . En la programación de JavaBeans, las firmas completas para estos métodos serían: public void setFirstName (String name), public String getFirstName(), public void setLastName (String name) y public String getLastName(). Este patrón de nombres es fácilmente reconocible, tanto para programadores humanos como para herramientas de edición, como NetBeans IDE. En la terminología de JavaBeans, se dice que el objeto Person contiene firstName y lastName properties.

El modelo JavaBeans también proporciona compatibilidad con tipos de propiedades complejas, más un sistema de entrega de eventos. También contiene varias clases de soporte , todas disponibles como API bajo el paquete java.beans. Por lo tanto, dominar la programación de JavaBeans implica aprender las convenciones de nomenclatura requeridas y su correspondiente API. (Para obtener más información acerca de en JavaBeans en general, consulte la lección JavaBeans del Tutorial de Java).

1

Se utiliza principalmente para REUSABILTY. Es un objeto serializable simple que se usa para encapsular muchos objetos en uno.