De nuevo mostrar campo text en función de select

Creo que entiendo lo que me quisiste decir, aunque si no me equivoco me pides que en el array 'valores' introduzca "cero de cero", "uno de cero"... Como literales, y yo desconozco los valores a introducir en el array.
Me ha quedado claro que javascript no tiene acceso a la sesión, sólo al documento HTML, pero he hecho un pequeño avance con el que no sé si podrás darme un último empujón :)
Dentro de la página jsp he escrito el siguiente código java
Como ves, en la lista consigo tener todas las carteras que posee el usuario en cuestión, hago de ella un array, y ya soy capaz de mostrar por salida estándar la entidad gestora que corresponde a cada cartera. Esos son los datos que requería de la sesión.
Ahora necesito que la entidad gestora mostrada cambie dinámicamente en el formulario
En función de la cartera seleccionada, para lo cual necesito javascript, y mi pregunta es:
¿Cómo accedo a ese array llamado "array" desde javascript?, o a ese tampoco puedo acceder! De conseguirlo, sería simplemente poner en javascript:
var index = document.admonCarterasForm.idCart.selectedIndex;
document.admonCarterasForm.entGest.value = array[index]; (o document.array[index], o lo que sea!)
¿Puedo hacer lo que te digo? ¿Cómo?

1 respuesta

Respuesta
1
Perdona pero parece que hay un problema con TodoExpertos porque no puedo ver tu código, así que no comprendo bien lo que quieres hacer.
En principio cualquier "objeto javascript" puedes verlo en cualquier parte del documento. Por lo que si has generado un array de elementos, puedes invocarlo desde cualquier parte.
Ahí va el código
// Código con el que obtenemos y almacenamos la entidad gestora para cada cartera
session = request.getSession(false);
if (session == null)
throw new RuntimeException("La sesión ha expirado");
UsuarioContainer usuarCont = (UsuarioContainer) session.getAttribute("usuarioContainer");
List carteras = usuarCont.getCartGlob().getCarteras();
Object[] array = carteras.toArray();
for (int i = 0; i < array.length; i++) {
CarteraVO cart = (CarteraVO) array;
System.out.println("La cartera " + cart.getIdCartera() + " la gestiona " + cart.getEntGest());
}
Es código Java dentro de la jsp, y no sé acceder desde javascript a la variable "array"
No se si coneces EL, es una forma de hacer Scripting en JSP sin usar las llaves
arrayDeCarteras[${status.count}]="La cartera ${cartera.idCartera} la gestiona ${cartera.entGest} ";
// -->
Esto te genera un javascript como este :
var arrayDeCarteas;
arrayDeCarteras[0]="La cartera 100 la gestiona gestor ";
arrayDeCarteras[1]="La cartera 100 la gestiona gestor1 ";
arrayDeCarteras[2]="La cartera 100 la gestiona gestor2";
Al final el javascript queda disponible en el documento.
Obviamente he usado taglibs y EL por intentar que el código quede "limpio", pero puedes hacer lo mismo usando JAVA, sustituye los ${ por <%= y el forEach por un for normal de java...
Perdona, definitivamente el editor de todoexpertos es odioso.
Vuelvo a escribir el código, decía que usaré EL y Taglibs para evitar escribir código java y que se mezcle con javascript. Así que usaré la etiqueta
// Esto es javascript
var arrayDeCarteras;
<c:forEach var="cartera" items="${usuarioContainer.carteras}" varStatus="status" >
  arrayDeCarteras[${status.count}]="La cartera ${cartera.idCartera} la gestiona ${cartera.entGest} ";
<c:forEach>
Y repito, si lo prefieres, sustituye el forEach por un for normal de java y el ${ por el habitual <%=
A ver si esta vez sale.
Por si no te queda claro el uso de taglibs es lo mismo sustituir el código de ForEach del taglib por :
...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas