miércoles, 15 de febrero de 2012

SPRING (MVC)

Aplicación en Capas, con Interfaces y con Inyección de Dependencias:
Cada Interfaz sirve principalmente para tratar a las clases de diferente forma, según necesidad, es decir las acciones que queremos realizar, métodos que queremos usar.Podemos asi para una misma Clase implementar varias Interfaces.

@Controller: Hace que no haga falta poner al controlador reflejado en el mapeo (.xml).
@Autowired: Indica que inyecte el Objeto del Bean declarado en el controlador.

Patron J2EE: En el  controlador frontal del web.xml, todas las peticiones llegan a un solo Servlet:
<servlet>org.springframework.web.servlet.DispatcherServlet</servlet>
Desde éste se le manda al controlador la información necesaria ya que este servlet desde el doGet hace el request:
Spring Servlet{
doGet{
 if (request.getParameter(x)=x.....
Controlador c=new Controlador( );
Model m=new Model( );
String v=c.helloWordl(m);
request.setAttribute(m);
request.getRequest.Dispatcher("files/vista...jsp");
}
}

En el applicationContext.xml se define como será el ámbito del Bean (siempre teniendo en cuenta q se trata de un proyecto web).

scopes="request"
scopes="session"
scopes="singleton"/"prototype"


Ejercicio de ejemplo Registro de Usuario:
Código del Controlador:

@Controller
public class ControladorRegistro {
        @Autowired
ServicioReg Sreg;
@RequestMapping(value="registro/mail={mail}&edad={edad}&clave{clave}")//mapeo del servlet del Controlador
public String registro(@PathVariable() int edad,@PathVariable() String mail,@PathVariable() String clave, Model model)  {
       try {
model.addAttribute("mail","Usuario:"+ Sreg.registra(edad,mail,clave));
return "okRegistro";
 
} catch (EdadProblemException e) {
return "errorEdad";
} catch (ExisteUsuarioException e) {
return "usuarioExiste";}
   }
}




No hay comentarios:

Publicar un comentario