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

valores por defecto de una lista

Estas en el tema de valores por defecto de una lista en el foro de Java en Foros del Web. Hola Tengo una aplicación en donde se dan de alta alumnos. También da opción a editarlos, y ahí surge mi duda. Cuando voy a la ...
  #1 (permalink)  
Antiguo 04/09/2008, 06:57
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
valores por defecto de una lista

Hola
Tengo una aplicación en donde se dan de alta alumnos. También da opción a editarlos, y ahí surge mi duda. Cuando voy a la opción de editar, aparece el formulario igual que el de la alta pero en lugar de estar vacío tiene los valores que tenía el alumno hasta el momento. Los valores se muestran fácilmente si son tipo texto, pero no sé como poner el valor que tenía antes una lista. Por ejemplo, el nivel de estudios seleccionado que tenía el alumno, ¿cómo hago para que aparezca marcada esa opción?
O una lista de teléfonos que se guardaron del alumno, ¿como se hace para que muestren esos teléfonos?
Saludos!!
  #2 (permalink)  
Antiguo 04/09/2008, 09:06
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: valores por defecto de una lista

Hola,

Supongo que es el mismo ejemplo de tu post anterior.

Tu ya tienes el codigo:
function addT() {
var newitem=prompt("Añadir teléfono:");
document.form.telefonos[document.form.telefonos.length] = new Option(newitem, newitem, "", "");
}

Pues bien, para hacer eso que quieres, tienes que poner hasta el final de tu pagina ese codigo junto con tu lista de Telefonos que tienes, y al momento que se termine de cargar tu pagina, veras los telefonos en tu lista.

Ejemplo: (Supongamos que tu lista de telefonos este en un ArrayList)

<script>
var newitem;
<% String telefono;
for(int i=0; i<listaTelefonos.size(); i++) {
telefono=(String)listaTelefonos.get(i); %>
newitem='<%= telefono %>';
document.form.telefonos[document.form.telefonos.length] = new Option(newitem, newitem, "", "");
<% } %>
</script>

No se te olvide que este codigo debe de estar hasta el final de tu pagina.

No he probado este codigo pero me imagino que debe de funcionar, de todas formas cualquier cosa aqui andamos!

saludos!
  #3 (permalink)  
Antiguo 04/09/2008, 09:31
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Todavía no lo he probado, pero antes de hacerlo una pregunta: ¿que quieres decir con "No se te olvide que este codigo debe de estar hasta el final de tu pagina."?

Saludos!!
  #4 (permalink)  
Antiguo 04/09/2008, 09:34
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: valores por defecto de una lista

jejeje... ese codigo que te pase debe de estar hasta el final de tu pagina jsp, puedes ponerlo antes de que cierres la etiqueta "</html>".

Me explico??
  #5 (permalink)  
Antiguo 04/09/2008, 09:40
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

jeje
Claro que te explicas! y muy bien!

Saludos!!
  #6 (permalink)  
Antiguo 08/09/2008, 00:45
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Hola!
Bueno, comento que yo estoy utilizando spring y también JSTL, por lo que no me resultó fácil llevar a cabo el ejemplo, asique pido ayuda de nuevo.

Parte de código del controlador:

if (operacion.equals("EDITAR")){
String DNI = request.getParameter("DNI");
alumno = alumnoServicio.getAlumno(DNI);
telefonos = alumnoServicio.getTelefonos(DNI);
Iterator<String> i = telefonos.iterator();
while(i.hasNext()){
System.out.println("Telefono"+i.next());
}
nombreVista = "editaAlumno";
mav = new ModelAndView(nombreVista);
mav.addObject("alumno", alumno);
mav.addObject(telefonos);
}

Parte de código de la jsp para comprobar que me coge los valores de los teléfonos que le paso a la vista:

<c:if test="${empty telefonosSet}">No hay telefonos</c:if>

<c:forEach items="${telefonosSet}" var="telefono">
<c:out value="${telefono.telefono}">${telefono.telefono}
</c:out>
</c:forEach>


Resultado: El System.out del controlador escribe correctamente los teléfonos, pero en la jsp siempre dice que no hay teléfonos. ¿Le estoy pasando bien los parámetros?

Saludos!!
  #7 (permalink)  
Antiguo 08/09/2008, 01:28
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Cuando añadimos una lista de objetos del tipo Empresa, la jsp nos lo nombrará como ${empresaList}, pero mi duda está cuando añadimos un conjunto (SET) de objetos de tipo Telefono. ¿como accedo a esos valores?

Saludos!!
  #8 (permalink)  
Antiguo 08/09/2008, 03:01
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Hola de nuevo!
Solucioné eso pasando los objetos del set a un list, y ahora si me pasa los parámetros a mi jsp. Seguiré mirando si hay forma de añadir a la vista un set, en lugar de un list, pero para ir tirando lo dejo así.
Ahora surge otra duda: como se llama a una función javascript dentro de un bucle for?

<c:forEach items="${stringList}" var="telefono">
escribirTelefonos(${telefono})
</c:forEach>

escribirTelefonos es la función javascript
Saludos!!
  #9 (permalink)  
Antiguo 08/09/2008, 06:00
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Problema solucionado así:

<script type="text/javascript">
<c:forEach items="${stringList}" var="telefono" >
document.form.telefonos[document.form.telefonos.length] = new Option(${telefono}, ${telefono}, "", "");
</c:forEach>
</script>

Saludos!!
  #10 (permalink)  
Antiguo 08/09/2008, 08:48
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: valores por defecto de una lista

Hola,

Sino mal recuerdo puedes pasar una variable de tipo Set a un Iterator (creo) o a un list(),

No recuerdo muy bien, pero de que se puede se puede.

Mucha suerte!!
  #11 (permalink)  
Antiguo 11/09/2008, 02:26
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Hola
Ahora tengo otro problema. Si sólo tengo que presentar la lista de telefonos me funciona, pero cuando tengo que presentar 3 listas (telefonos, emails y faxes) ya no funciona, no escribe ninguna de las tres listas, ¿de que puede ser?


<script>
<c:if test="${empty telefonos}">
Lista de telefonos vacíos
</c:if>
<c:forEach items="${telefonos}" var="telefono" >
document.form.telefonos[document.form.telefonos.length] = new Option(${telefono}, ${telefono}, "", "");
</c:forEach>

<c:if test="${empty faxes}">
Lista de faxes vacíos
</c:if>
<c:forEach items="${faxes}" var="fax" >
document.form.faxes[document.form.faxes.length] = new Option(${fax}, ${fax}, "", "");
</c:forEach>

<c:if test="${empty emails}">
Lista de emails vacíos
</c:if>
<c:forEach items="${emails}" var="email" >
document.form.emails[document.form.emails.length] = new Option(${email}, ${email}, "", "");
</c:forEach>

</script>

Saludos!!
  #12 (permalink)  
Antiguo 11/09/2008, 07:03
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

Este es el código:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>EDITAR ALUMNO</title>


<script language="Javascript" type="text/javascript">

// función para validar los datos del formulario

function validar(formulario){
var correcto=true;
var mensaje="";
if (formulario.operacion.value=="GUARDAR"){
if (isNaN(formulario.horasAsistenciaReal.value)){
formulario.horasAsistenciaReal.focus();
mensaje="El valor de las horas de asistencia real debe ser numérico";
correcto=false;
}

if (formulario.DNI.value==""){
mensaje="El DNI no puede estar vacío";
formulario.DNI.focus();
correcto=false;
}
if (!correcto)alert(mensaje);

return correcto;
}
}

.........................................
..........................................

</script>

</head>

<body>

<form name="form" action="alumnos.do" onsubmit="return validar(this)" >

<fieldset>
<legend>Telefonos, emails y faxes</legend>

<label for="telefonos">Teléfonos:</label>
<select name="telefonos" multiple >
</select>
<input type="button" value="Añadir" onClick="addT()">
<input type="button" value="Borrar" onClick="delT()">

<label for="faxes">Faxes:</label>
<select name="faxes" multiple >
</select>
<input type="button" value="Añadir" onClick="addF()">
<input type="button" value="Borrar" onClick="delF()">

<label for="emails">Emails:</label>
<select name="emails" multiple >
</select>
<input type="button" value="Añadir" onClick="addE()">
<input type="button" value="Borrar" onClick="delE()">

</fieldset>

.....................................
.....................................

<input type="submit" name="operacion" value="CANCELAR" />
<input type="submit" name="operacion" value="ACEPTAR" onclick="selecciona(true)"/>
<input type="reset" name="limpiar" value="LIMPIAR FORMULARIO" />


</form>

</body>

<script type="text/javascript">
<c:forEach items="${emails}" var="email" >
document.form.emails[document.form.emails.length] = new Option(${email}, ${email}, "", "");
</c:forEach>
</script>

<script type="text/javascript">
<c:forEach items="${telefonos}" var="telefono" >
document.form.telefonos[document.form.telefonos.length] = new Option(${telefono}, ${telefono}, "", "");
</c:forEach>
</script>

<script type="text/javascript">
<c:forEach items="${faxes}" var="fax" >
document.form.faxes[document.form.faxes.length] = new Option(${fax}, ${fax}, "", "");
</c:forEach>
</script>


</html>

Y sólo carga los telefonos. Los faxes y los emails no hay manera. ¿Alguien ve algo raro?

Saludos!!
  #13 (permalink)  
Antiguo 11/09/2008, 07:59
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: valores por defecto de una lista

Y si tienes valores en las listas???
  #14 (permalink)  
Antiguo 11/09/2008, 08:05
Avatar de morenita7722  
Fecha de Ingreso: enero-2007
Ubicación: aquí, ¿donde sino?
Mensajes: 261
Antigüedad: 18 años
Puntos: 1
Respuesta: valores por defecto de una lista

ahora mismo no puedo probar a meterle valores a pelo, pero comprobé que las listas no estuvieran vacías, y cuando veo los detalles de los alumnos las listas aparecen con los datos, pero cuando quiero cargarlas para editarlas no va


Saludos!!
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 01:59.