Spring MVC 4 Flashcards
Que version de servlets es compatible com spring mvc4
La especificacion servlet 3.0 que nos sirve para tener aplicaciones container-less, esto quiere decir que por medio de spring boot podemos tener embebido un contenedor por ejemplo tomcat
Como se configura una aplicacion con spring MVC4
Ya no necesitamos web.xml ya que eso se hace mediante una clase de configuracion y el dispatcher servlet tambien se configura por medio de una clase, esto se logra por medio de @Configuration y @EnableWebMvc, este ultimo es el que remplaza al servlet-config
Que modelo arquitectonico se puede tener ahora con sprring MVC4
Antes era MVC y ahora se puede lograr MVVC VER MAS
Que anotacion es la nueva en spring MVC4
La anotacion de @RestController la cual nos va a devolver un servicio rest, esto con la ayuda del dispatcher el cual le especificaremos que necesitamos que nos devuelva JSON o XML o etc
Que se define en el web.xml o en la clase de configuracion
- Dispatcher Servlet
- Patron que va a interceptar dispatcher servlet, por ejemplo .jsp
- Localizacion del servlet-config.xml o la clase de configuracion
Como se crea el application context sin xml
Se tiene que tener una clase que implemente WebApplicationInitializer y le asignamos el dispatcher
Para que sirver los InternResourcesViewResolvers
Para garantizar el flujo de la aplicacion, indicando que tipos de archivos vamos a buscar para la vista, por ejemplo jsp, esto se hace indicando un prefijo que debe estar en la carpeta WEB-INF y un sufijo que es la extension del arhivo ejemplo .*jsp,
Como garantizamos la experiencia de usuario con los recursos estaticos en mvc4
Lo hacemos por medio de una clase llava que extienda de WebMVCConfigurerAdapter y situamos el contenido estatico en la carpeta WEB-INF
En xml como configuramos para leer contendio estatico
en el xml ponemos mvc:resources location y mapping
Cual es la diferencia entre forward y redirect
- forward no cambia la url, extiende el request
- redirect va a cambiar la url y va a crear un nuevo request hacia el destino que especifiquemos
Como se especifica un objeto en sesion
@SessionAttibute(“nombreObjeto”)
Que es un patron POST-REDIRECT-GET
Cuando hacemos un post debemos redirigir a un recurso que nos de un GET, esto se hace para evitar problemas con el boton back y no se reenvie de nuevo el formulario
Como definimos I1n8 en MVC4
Se hace por medio de definir los siguientes beans:
- Definimos nuestro messages_xx.properties
- Definimos nuestro locale por default
- Creamos un interceptor que va a estar ligado con una propiedad que va a cambiar y va a ser nuestro trigger para cambiar de message_xx.properties. Ejemplo español o ingles
- Adicional debemos poner tags de errores en nuestra jsp y tags spring:messages code=”propiedadEnMessage.properties”
Para customizar mensajes de validation api y hibernate validator que se hace
en hibernate solo podemos definir un solo mensaje por anotacion, por ejemplo @Email si la utilizamos en multimples lugares no podemos definir un mensaje para cada una de esas propiedades por ejemplo
En el archivo properties solo podemos poner Email=”email no valido “
En el caso de lo que esta en el validator api, podemos especioficar el mensaje a cada uso de la anotacion
@Size(min=1, max=20)
En el .properties podemos poner Size.clase.propiedad=”mensaje donde cambiamos order de maximo {1} y minimo {2} “
Como se crea una validacion customizada
Nos sirve para hacer menos verbose nuestra validacion y encapsular el comportamiento en una anotacion y no tener la expresion regular directamente, y los pasos para hacer nuestra propia validacion son los siguientes:
- Creamos la anotacion
- Creamos la clase que representa nuesta restriccion y debe implementar ConstraintValidation
Para mas info ver demo Custom Validator curso Bryan Hensem spring MVC4