Bienvenido a re-orientation! Esperamos que encuentres lo que buscas

Estructura de las acciones, la lógica de negocios

Parte del Manual para la creación, paso a paso, de una aplicación web Java MVC totalmente operativa sin el uso de frameworks


Ya hemos visto como está estructurada la navegación en nuestro modelo MVC, solo nos queda ver como se han implementado las acciones del caso de uso (ListarLibrosCuento y ListarOtrosLibros ) y la estructura de sus clases asociadas.

Comenzaremos por la clase abstracta Accion, que tiene básicamente 3 métodos:

  • setActionParams: A través del cual las clases que heredan de Accion podrán tener acceso a la request/response.
  • executeAction: Que es le método que será invocado por AccionProxy sobre mi clase de acción concreta haciendo uso del polimorfismo.
  • execute: Que es el método abstracto que tendrán que implementar todas las acciones "hijas" de esta acción genérica.

El código asociado quedaría así:

	public void setActionParams (HttpServletRequest request, HttpServletResponse response ){ this.request = request; this.response = response; }
	public abstract void execute() throws Exception;
	public boolean executeAction() { 
		boolean resp = true;
		try{ 
			execute();
		} catch (Throwable ex) 
		{
			System.out.println(" Exception: " + ex.toString() + " en " + getClass() );
			resp = false; 
		}
		return resp;
	}

Las clase que implementan las acciones concretas ListarLibrosCuento.java y ListarOtrosLibros.java implementarán el método execute y en nuestro ejemplo simplemente van a enviar un mensaje de salida a la web: un texto indicando el resultado de la búsqueda de los libros. Este tutorial está centrado exclusivamente en el flujo de navegación a través de las capas del modelo MVC, para los que quieran desarrollar más el ejemplo, este es el sitio para implementar la lógica de negocio :)

El código de estas clase es:

package com.ro.ejercicioMVC.acciones;

public class ListarLibrosCuento extends Accion {
	public void execute () {
		String informe = " No hay libros de cuento disponibles, no se quedarán de otros géneros";  
		request.setAttribute("LibrosEncontrados", informe);
	}
}
public class ListarOtrosLibros extends Accion {
	public void execute () {
		String informe = " No hay libros disponibles de ningún tipo, todos están prestados";  
		request.setAttribute("LibrosEncontrados", informe);
	}
}
Terminos Tecnología: