Foros del Web » Programación para mayores de 30 ;) » Java »

SPRING MVC - Como obtener la variable para iterar en la vista JSP

Estas en el tema de SPRING MVC - Como obtener la variable para iterar en la vista JSP en el foro de Java en Foros del Web. Estoy novato en esto (java,spring), y estoy tratado de programar algo muy simple. La idea es enviar a la vista una variable que contenga un ...
  #1 (permalink)  
Antiguo 11/05/2013, 15:30
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 11 meses
Puntos: 14
SPRING MVC - Como obtener la variable para iterar en la vista JSP

Estoy novato en esto (java,spring), y estoy tratado de programar algo muy simple.

La idea es enviar a la vista una variable que contenga un ArrayList<User>, para iterar sobre ella.


Controlador Principal
Código:
package com.springapp.mvc;

import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;

@Controller
public class HelloController {

    ArrayList<User> users = new ArrayList<User>();

    public void addUsers(String name, String lastName){
        User user = new User();

        user.setName(name);
        user.setLastName(lastName);

        this.users.add(user);
    }

    public ArrayList<User> getUsers(){
        return this.users;
    }

    public void setUsers(){

        this.addUsers("romel","gomez");
        this.addUsers("rudy","gomez");

    }

    @RequestMapping("/users")
    public String users(ModelMap model){

        this.setUsers();
        model.addAttribute("variable",this.getUsers());


        return "users";

    }

}
Objeto User
Código:
package com.springapp.mvc;

/**
 * User class
 * User: romel
 * Date: 11/05/13
 * Time: 12:08 PM
 */
public class User {

    public String name;
    public String lastName;

    public void setName(String name){
        this.name = name;
    }
    public void setLastName(String lastName){
        this.lastName = lastName;
    }

    public String getName(){
        return this.name;
    }

    public String getLastName(){
        return this.lastName;
    }

}

Yo quisiera saber como obtener la variable para hacer algo como esto. Vale destacar que no me reconoce $variable como variable valida.

users.jsp

Código:
<%@ page import="com.springapp.mvc.User" %>
<%@ page import="java.util.ArrayList" %>
<%--
  Users view
  User: romel
  Date: 11/05/13
  Time: 12:29 PM
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>


<%

    for(ArrayList<User> data:$variable){
        System.out.println("Nombre: "+data.name+", Apellido:"+data.lastName);
    }

%>


</body>
</html>

saludos
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.
  #2 (permalink)  
Antiguo 11/05/2013, 16:17
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: SPRING MVC - Como obtener la variable para iterar en la vista JSP

Mira yo en spring mvc basico pero esto me funciona no se si habra diferentes maneras de hacerlo sospecho que si pero proba

Código C++:
Ver original
  1. ModelAndView model = new ModelAndView("HelloWorldPage");
  2. model.addObject(attributeName, attributeValue);

Código HTML:
Ver original
  1. <h2>${attributeName}</h2>

Saludos.
  #3 (permalink)  
Antiguo 11/05/2013, 18:55
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 11 meses
Puntos: 14
Respuesta: SPRING MVC - Como obtener la variable para iterar en la vista JSP

Puedo mostrar la data usando la librería taglib, pero quisiera saber si se puede hacer de otra forma para solo tener que lidiar con java y no con una interfaz del java y ademas html por que esa librería la usan también para construir estructuras html, lo cual no me gusta para nada. parece una empanada de pabellón, todo ligado. Yo quisiera tener la variable disponible en la vista y con una estructura java iterar todo el contenido del array de objetos.

Código:
<c:forEach items="${variable}" var="data">
    ${data.name} ${data.lastName}
    <br />
</c:forEach>
Entonces yo quiero disponer dentro del ámbito de java en la pagina jsp la variable para iterar sobre ella, algo así: "Nota: el código no funciona"

Código:

<%   

    for(User  data:${variable}){
        System.out.println("Nombre: "+data.name+", Apellido:"+data.lastName);
    }

%>
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.
  #4 (permalink)  
Antiguo 11/05/2013, 19:22
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: SPRING MVC - Como obtener la variable para iterar en la vista JSP

No se como lo muestres es problema tuyo pero la clave esta en el controller

voy a tratar de ser mas claro

Este es mi controller bien basico
Código C++:
Ver original
  1. @Controller
  2. @RequestMapping("/welcome")
  3. public class HelloWorldController {
  4.  
  5.     @RequestMapping(method = RequestMethod.GET)
  6.     public ModelAndView helloWorld() {
  7.  
  8.  
  9.         List<String> list = new ArrayList<String>();
  10.         ModelAndView model = new ModelAndView("HelloWorldPage");
  11.         list.add("uno");
  12.         list.add("dos");
  13.         list.add("tres");
  14.         model.addObject("lista", list);
  15.  
  16.  
  17.         return model;
  18.     }
  19. }

y el jsp el siguiente

Código HTML:
Ver original
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  2.     <h1>Spring MVC Hello World Annotation Example</h1>
  3.  
  4.     <h2>${lista}</h2>
  5.  
  6. </body>
  7. </html>

y la salida en la web

Código HTML:
Ver original
  1.     <h1>Spring MVC Hello World Annotation Example</h1>
  2.  
  3.     <h2>[uno, dos, tres]</h2>
  4.  
  5.  
  6. </body></html>
  #5 (permalink)  
Antiguo 11/05/2013, 20:24
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 11 meses
Puntos: 14
Respuesta: SPRING MVC - Como obtener la variable para iterar en la vista JSP

darkChild, muchas gracias!!!

Tengo que aprender a usar taglib, puedo interpretar tu código perfectamente.

Yo tengo un código similar al que propones, básicamente es la misma idea.

Modelo
Código c++:
Ver original
  1. public class User {
  2.  
  3.     public String name;
  4.     public String lastName;
  5.  
  6.     public void setName(String name){
  7.         this.name = name;
  8.     }
  9.     public void setLastName(String lastName){
  10.         this.lastName = lastName;
  11.     }
  12.  
  13.     public String getName(){
  14.         return this.name;
  15.     }
  16.  
  17.     public String getLastName(){
  18.         return this.lastName;
  19.     }
  20.  
  21. }


Controlador
Código c++:
Ver original
  1. @Controller
  2. public class HelloController {
  3.  
  4.  
  5.     ArrayList<User> users = new ArrayList<User>();
  6.  
  7.     public void addUsers(String name, String lastName){
  8.         User user = new User();
  9.  
  10.         user.setName(name);
  11.         user.setLastName(lastName);
  12.  
  13.         this.users.add(user);
  14.     }
  15.  
  16.     @RequestMapping("/")
  17.     public String users(ModelMap model){
  18.  
  19.         this.addUsers("romel","gomez");
  20.         this.addUsers("rudy","gomez");
  21.  
  22.         model.addAttribute("variable", this.users);
  23.  
  24.         return "users";
  25.     }
  26.  
  27.  
  28. }

Vista
Código c++:
Ver original
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%--
  3.   Users view
  4.   User: romel
  5.   Date: 11/05/13
  6.   Time: 12:29 PM
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11.     <title></title>
  12. </head>
  13. <body>
  14.  
  15. <c:forEach items="${variable}" var="data">
  16.     ${data.name} ${data.lastName}
  17.     <br />
  18. </c:forEach>
  19.  
  20. </body>
  21. </html>

Resultado
Código HTML:
romel gomez 
rudy gomez
Ve este tutorial que recién encontré es bastante bueno para lo que estan empezando como yo. http://jeromejaglale.com/doc/java/spring/mvc

saludos.
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.

Etiquetas: html, jsp, mvc, programa, spring, string, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:40.