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