Arquitectura modelo-vista-controlador

Emely
02 de Febrero del 2009
Hola, tengo una duda a cerca de la arquitectura modelo-vista-controlador. Supuestamente el modelo llegaría a ser mi BD, el controlador mi funcionalidad(java beans) y la vista mi interfaz(html). Pero si estoy trabajando con JSP en la vista estaria tambien mi codigo JSP y ahí ya estaría mezclando la estructura de dicha arquitectura, como haría para que mi vista no esté mezclada?? si debo trabajar necesariamente con JSP y Beans ??
gracias de antemano

Jose
02 de Febrero del 2009
Espero que esto te sirva, hace unos años yo me plantee el mismo dilema, como puedo separar la Vista del Controlador y de las clases Entidad. La verdad es que hay muchos libros que te hablan de ello, pero ninguno te dice como es de verdad el asunto.
Yo no usaba Beans, pero para el caso me daba igual, así que lo que quería era independizar al máximo la parte de diseño gráfico y presentación (Vista JSP) de lo que era el control de las transacciones y del acceso a la BB.DD.
La ide que he visto en varios sitios y que yo mismo aplico es la siguiente:
1. Vista: Para ello uso JSP normales y corrientes, pero claro no puedo sacar todo el código de la JSP, quiero decir, que no puedo generar HTML puro y duro, así que lo que hago es minimizar ese código, ¿Cómo? pues bien que las Vistas reciban datos ya "hechos o rellenos" en otro sitio, ¿En qué sitio? en el controlador. Los tipos de datos que debe recibir la JSP se basan en Beans y ArrayList, que o bien a traves de Request o bien en la Session se los paso a la JSP en concreto, de esta forma me ahorro mucho código en estas páginas.
2. Controlador: En este caso podemos usar Servlets o Struts (a tu elección), y lo que hago es crear un primer Control que me dirá de qué página vengo, analizando la cabecera de la request, y después me dirá, en función de unos parámetros, a donde voy, y en esos pasos intermedios lo que hago es acceder a la BB.DD., te preguntarás que si lo hago directamene desde el Servlet o Strut, pues no, lo que hago es desde otras clases (Entidad) que yo le llamo Beans, acceder a la B.D., por ejemplo en su constructor, y que sean estas clases las que se encarguen de recibir las excepciones de la BB.DD. o de las funciones que quiera usar.
3. Entidad: serán una serie de clases, que como te he dicho antes yo llamo Beans, y que se encargarán de la lógica de la aplicación.


Espero haberte sido de utilidad.