Spring Anotaciones Controler

Spring Anotaciones Controler

En este ejemplo, verá cómo Desarrollamos anotación de controladores basados en Spring. Este ejemplo es similar al del ejemplo anterior, excepto que utiliza anotaciones. Aquí voy a explicar sólo los cambios que necesita para hacer que el ejemplo anterior, así que si eres un nuevo en esto mírate el otro ejemplo Controlador de Formulario Simple.
Si está utilizando controlador basado en anotaciones a continuación, no hay necesidad de extender cualquier clase o implementación de la interfaz. Lo único que tienes que hacer para que su simple clase Java para convertirse en un controlador de Spring consiste en añadir la anotación @Controller a la misma.

El código siguiente es de la clase UserController.

package com.amalakaky.web;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.SessionAttributes;

import com.amalakaky.dominio.User;

import com.amalakaky.servicio.UserService;

@Controller

@RequestMapping(“/userRegistration.htm”)

@SessionAttributes(“user”)

public
class UserController {

    private UserService userService;

    @Autowired

    public
void setUserService(UserService userService) {

        this.userService = userService;

    }

    

    @RequestMapping(method = RequestMethod.GET)

    public
String showUserForm(ModelMap model)

    {

        User user = new User();

        model.addAttribute(user);

        return
“userForm”;

    }

    @RequestMapping(method = RequestMethod.POST)

    public String onSubmit(@ModelAttribute(“user”) User user) {

        userService.add(user);

        return
“redirect:userSuccess.htm”;

    }

    

}

La anotación @Controller
se utiliza para marcar una clase Java como un controlador.

La anotación @RequestMapping se utiliza para asignar la solicitud Web”/userRegistration.htm” a la clase UserController.

La anotación @SessionAttributes se utiliza para almacenar el objeto de modelo en la sesión. En nuestro caso, el modelo de objetos es el usuario (User).

Uso de la anotación @Autowired el contenedor puede transferir los bean de forma automática. De forma predeterminada autowire se realiza según el tipo. Aquí cualquier clase que sea compatible con la clase UserService será elegida.
En la clase del controlador es necesario especificar dos métodos, uno para el manejo de la solicitud HTTP GET y el otro para el manejo de la solicitud HTTP POST. Estos métodos pueden tener nombres arbitrarios. Cuando el formulario se representa por primera vez se invocará el método showUserForm () y cuando se envía el formulario para la tramitación será invocado el método onSubmit ().

La anotación @RequestMapping se utiliza para indicar el tipo de solicitud HTTP.

El objeto asociado de comando con el formulario se inicializa en el método showUserForm (). El showUserForm () tiene acceso a la ModelMap, en el método showUserForm (), crea una instancia del objeto de comando y la agrega a la ModelMap. Para agregar atributos a la ModelMap puede utilizar el método AddAttribute (). Este método generará automáticamente los nombres de los atributos para cada elemento. En nuestro caso el objeto de usuario obtendrá el nombre de de forma predeterminada “usuario “, también puede cambiar el valor por defecto.

Después de que el formulario es llenado y enviado será llamado por el método onSubmit (). Se puede acceder al objeto de comando se usa la anotación @ModelAttribute. Aquí el nombre del objeto de comando es usuario, el que nos propusimos en el ModelMap. Después de conseguir el objeto de comando, llame al método de servicio para registrar el usuario y redirigir el control a la “userSuccess.jsp “de la página.

Sí, aquí nos redirigirá a la “userSuccess.htm” en lugar de devolver “userSuccess” esto es necesario porque si nos limitamos a volver “userSuccess” la página userSuccess.jsp se mostrará, pero al actualizar la página se volvió a presentar la forma, esto es algo que no queremos.

El “userSuccess.htm” solicitud se asigna a la clase UserSuccessController, aquí el método redirect () será llamado y el control se transfiere a la página userSuccess.jsp.

El siguiente código muestra la clase UserSuccessController.

package com.amalakaky.web;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.SessionAttributes;

import com.amalakaky.dominio.User;

import com.amalakaky.servicio.UserService;

@Controller

@RequestMapping(“/userRegistration.htm”)

@SessionAttributes(“user”)

public
class UserController {

    private UserService userService;

    @Autowired

    public
void setUserService(UserService userService) {

        this.userService = userService;

    }

    

    @RequestMapping(method = RequestMethod.GET)

    public String showUserForm(ModelMap model)

    {

        User user = new User();

        model.addAttribute(user);

        return
“userForm”;

    }

    @RequestMapping(method = RequestMethod.POST)

    public String onSubmit(@ModelAttribute(“user”) User user) {

        userService.add(user);

        return
“redirect:userSuccess.htm”;

    }

    

}

Para habilitar que Spring detecte automáticamente los controladores que necesita para especificar el paquete de base de los controladores mediante el elemento <context:component-scan> en el archivo de configuración de Spring. DefaultAnnotationHandlerMapping y AnnotationMethodHandlerAdapter son prenscrito en el contexto de la aplicación web por defecto. Pero hay que registrarse de forma explícita, en caso que usted se ha registrado ningún asignaciones de controlador otros adaptadores o controladores de forma explícita

Anuncios
Minientrada | Esta entrada fue publicada en Spring. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s