Taller Spring MVC 3.pdf

Embed Size (px)

Citation preview

  • Taller Spring MVC 3.0

    Por medio de este taller se implementara un proyecto de Web usando Spring 1. Abrir Eclipse 2. Ingresar a File--> New-->Other

    3. Seleccionar Dynamic Web Project y luego en el boton Next

  • 4. Crear el Nuevo proyecto con los parametros siguientes y luego hacer clic en botn Finish

    Esta es la estructura general que tiene el proyecto al ser creado

    5. A continuacin se le aadirn propiedades Spring al proyecto para habilitar las propiedades de Spring, haciendo clic derecho sobre el proyecto y haciendo la siguiente seleccin:

  • 6. Para hacer uso de las libreras se necesitaran descargar las dependecias, la herramienta Maven se encargara de esto y a continuacin se le aadir esta propiedad al proyecto haciendo clic derecho y haciendo la siguiente seleccin:

  • 7. Luego llenar el formulario de la siguiente forma, notar que para el campo Source Directory debe estar seleccionado src Luego hacer clic en Finish

    Notar como despus de aadir estas dos tecnologas, cambia la estructura general de los proyectos aadiendo nuevos folders que sern usados. (copiar pom brindado)

    8. A continuacin se creara una pagina Principal Simple para confirmar el funcionamiento del entorno web, se creara una jsp en la carpeta WebContent, para esto se hara clic derecho sobre esta carpeta y hacer la siguiente seleccin.

  • 9. Llamaremos a esta pagina index.jsp y se hara clic en Finish

    10. Se insertara el siguiente cdigo dentro del JSP que se acaba de crear y se a continuacin se guardara haciendo clic sobre el botn Save o Ctrl+S

    11. Dentro de la carpeta Web-Inf encontraremos el archivo de configuracin llamado web.xml, abrir este archivo y borrar todo el cdigo que tiene en ese momento y reemplazarlo por el siguiente:

    index.jsp

  • 12. A continuacin se desplegara la aplicacin, para esto se hara clic derecho sobre el proyecto y seleccionar lo siguiente:

    En la siguiente ventana de seleccin asegurar que el servidor seleccionado sea Tomcat v6.0 y hacer clic en Finish

    Eclipse levantara el servidor y luego de hacer el proceso de compilacin se abrir el navegador mostrando la pagina JSP creada

  • 13. Nuevamente abrir el archivo web.xml, esta vez ser modificado para aadir un dispatcher servlet, este se encargara de enrutar todas las solicitudes. Aadir el siguiente cdigo despus de el cierre del tag display-name . 14. A continuacin crearemos el archivo de configuracin de spring, en este se definirn los beans, este archivo debe de estar ubicado dentro del folder WEB-INF y su nombre ser el parmetro que hayamos puesto dentro del tag servlet-name mas -servlet en este caso nuestro archivo ser llamado dispatcher-servlet. Se hara clic derecho sobre el folder WEB INF y se hara la siguiente seleccin:

    dispatcher

    org.springframework.web.servlet.DispatcherServlet

    1

    dispatcher

    *.htm

  • 15. En el siguiente recuadro ingresar como nombre dispatcher-servlet.xml y luego hacer clic en Finish

    16. Se abrir el archivo dispatcher-servlet que se acaba de crear y se modifacara para que unciamente tenga el siguiente cdigo: Este es un ejemplo simple que ensea como se relaciona cierta ruta con su clase respectiva. A continuacin se creara la siguiente clase con la lgica interna a manejar. 17. Bajo el folder Java Resources se encuentra un subfolder llamado src. Se hara clic derecho sobre este para crear un nuevo paquete.

  • 18. Llenar el siguiente recuadro de la siguiente forma y dar clic en Finish

    Luego de crear el paquete se procede a crear la clase Controller que tendr toda la lgica. 19. Dar clic derecho sobre el paquete recin creado y hacer la siguiente seleccin para crear una nueva clase.

    En el siguiente recuadro nombrar la clase HelloController

  • 20. Esta nueva clase deber tener el siguiente cdigo 21. Procederemos a crear la vista que mostrara el resultado. Crearemos un nuevo JSP llamado hello.jsp dentro de la carpeta WEBCONTENT y tendr el siguiente cdigo Probar nuevamente la aplicacin sin embargo, una vez desplegada la pagina principal, accesar a la direccin

    http://localhost:8080/TallerSpring/hello.htm. Para ensear mayor funcionamiento de las herramientas que provee Spring tendremos que hacer uso de la librera estndar JSTL y para facilitar este proceso haremos un archivo de cabecera que estar incluido en todos los dems JSP que deseemos. 22. dentro de la carpeta WEB-INF crear una nueva carpeta llamada jsp, mover el archivo hello.jsp y crear un nuevo archivo llamado include.jsp con el siguiente cdigo: 23. Abrir el archivo index.jsp y modificar todo para que solo contenga este cdigo.

    import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.ModelAndView; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub return new ModelAndView("hello.jsp"); } }

    Taller :: Spring MVC

    SPRING Ingenieria en la Web

    Uso de vistas por media de el sistema MVC

  • 24. Modificar el archivo ehllo.jsp para que tenga el siguiente cdigo: 25. Abrir el controlador (HelloController) y modificarlo el mtodo handleRequest para que quede de la siguiente forma Desplegar la aplicacin, notar que esta vez se redirige inmediatamente hacia hello.jsp 26. abrir el dispatcher-servlet y aadir estas lneas despus de la definicin del bean

    27. Abrir nuevamente la clase controlador (HelloController) y modificar el mtodo anterior para que quede de la siguiente forma Compilar y correr nuevamente la aplicacin para probar su funcionamiento.

    Taller :: Spring MVC

    Taller Spring Ing Web

    Uso basico de Spring con nuevo valor: ${now}

    @Override

    public ModelAndView handleRequest(HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    // TODO Auto-generated method stub

    String now = (new Date()).toString();

    return new ModelAndView("WEB-INF/jsp/hello.jsp", "now", now);

    }

    @Override

    public ModelAndView handleRequest(HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    // TODO Auto-generated method stub

    String now = (new Date()).toString();

    return new ModelAndView("hello", "now", now);

    }

  • 28. Crear un nuevo paquete bajo src springapp.domain y bajo esta una clase llamada Product con el siguiente cdigo. 29. Crear un nuevo paquete bajo src llamado springapp.service y bajo este crear una interface llamada productManager

    package springapp.domain;

    import java.io.Serializable;

    public class Product implements Serializable {

    private String description;

    private Double price;

    public String getDescription() {

    return description;

    }

    public void setDescription(String description) {

    this.description = description;

    }

    public Double getPrice() {

    return price;

    }

    public void setPrice(Double price) {

    this.price = price;

    }

    public String toString() {

    StringBuffer buffer = new StringBuffer();

    buffer.append("Description: " + description + ";");

    buffer.append("Price: " + price);

    return buffer.toString();

    }

    }

    package springapp.service;

    import java.io.Serializable;

    import java.util.List;

    import springapp.domain.Product;

    public interface ProductManager extends Serializable{

    public void increasePrice(int percentage);

    public List getProducts();

    }

  • 30. Bajo este mismo paquete crear la clase SimpleProductManager con el siguiente cdigo

    package springapp.service;

    import java.util.List;

    import springapp.domain.Product;

    public class SimpleProductManager implements ProductManager {

    private List products;

    public List getProducts() {

    return products;

    }

    public void increasePrice(int percentage) {

    if (products != null) {

    for (Product product : products) {

    double newPrice = product.getPrice().doubleValue() *

    (100 + percentage)/100;

    product.setPrice(newPrice);

    }

    }

    }

    public void setProducts(List products) {

    this.products = products;

    }

    }

  • 31. En el paquete springapp.web crear una nueva clase llamada InventoryController con el siguiente cdigo: 32. Abrir el archivo hello.jsp y modicarlo para que quede de la siguiente forma

    package springapp.web;

    import org.springframework.web.servlet.mvc.Controller;

    import org.springframework.web.servlet.ModelAndView;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import java.io.IOException;

    import java.util.Map;

    import java.util.HashMap;

    import springapp.service.ProductManager;

    public class InventoryController implements Controller {

    private ProductManager productManager;

    public ModelAndView handleRequest(HttpServletRequest request,

    HttpServletResponse response)

    throws ServletException, IOException {

    String now = (new java.util.Date()).toString();

    Map myModel = new HashMap();

    myModel.put("now", now);

    myModel.put("products", this.productManager.getProducts());

    return new ModelAndView("hello", "model", myModel);

    }

    public void setProductManager(ProductManager productManager) {

    this.productManager = productManager;

    }

    }

    Products

    $

  • 33. Abrir el archivo dispatcher-servlet y modificarlo para que quede de la siguiente forma 34. bajo la carpeta WEB-INF crear una carpeta llamada clases y bajo esa carpeta crear un archivo de nombre messages.properties con el siguiente texto

    title=SpringApp

    heading=Taller :: Spring MVC

    greeting=Bienvenido a la prueba de Spring MVC

  • Nuevamente levantar el servidor y correr la aplicacin. 35. bajo el paquete springapp.domain crear la siguiente clase llamada User con el siguiente codigo 36. bajo el paquete springapp.web crear una clase llamada SimpleFormController con el siguiente cdigo

    package springapp.domain;

    public class User {

    private String userName;

    private String email;

    public void setUserName(String userName){

    this.userName=userName;

    }

    public String getUserName(){

    return userName;

    }

    public void setEmail(String email){

    this.email=email;

    }

    public String getEmail(){

    return email;

    }

    }

    package springapp.web;

    import springapp.domain.User;

    import org.springframework.stereotype.Controller;

    import org.springframework.ui.Model;

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

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

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

    @Controller

    public class SimpleFormController {

    @RequestMapping(value = "/simpleForm.htm", method = RequestMethod.GET)

    public void simpleForm(Model model) {

    model.addAttribute(new User());

    }

    @RequestMapping(value = "/formoutput.htm", method = RequestMethod.POST)

    public void simple(@ModelAttribute User user, Model model) {

    model.addAttribute("user", user);

    }

    }

  • 37. Bajo la carpeta jsp crear un nuevo JSP llamado simpleForm 38. En la carpeta jsp crear un nuevo jsp llamado formoutput

    TALLER SPRING MVC

    Nombre :

    Correo Electronico :

    Taller Spring MVC

    Bienvenido:

    Correo Electronico:

  • 39. Aadir el siguiente vinculo a hello.jsp Formulario 40. Modificar dispatcher-servlet.xml para que quede de la siguiente forma Levantar el servidor y ejecutar la aplicacin haciendo clic en el hipervinculo