Jsp y Variables de Sesión

Como puedo asignar una variable de sesión a una variable String
ej:
String varJsp = session.getValue("varSesion");
porque asi me reclama que no puedo convertir un dato de tipo Object a String..

5 Respuestas

Respuesta
1
Tienes que hacerle un casting para que lo convierta a String en la manera String varJsp = (String)session.getValue("varSesion");
Respuesta
1
La expresión simplemente esta incompleta, la forma correcta de asignar un Objeto a un String es la siguiente:
String varJsp = (String)session.getValue("varSesion");
Ya que el método getValue regresa el valor encapsulado de la instancia String en forma de Object, al poner (String) antes del método desencapsula la información de regreso a un String, entonces ya puedes asignarlo a una variable de tipo String. Una mejor forma de asegurarse de que "varSesion" en realidad contenga una variable String seria la siguiente:
String varJsp = null;
Object varSesion = session.getValue("varSesion");
if ( varSesion instanceof String ) {
varJsp = (String)varSesion;
}
En este ejemplo de código primero verifica que la variable de sesión "varSesion" en realidad contenga datos tipo "String" y si los contiene asigna el valor a "varJsp".
Respuesta
1
A la hora de hacer consultas de este tipo intentar explicarnos un poco más lo que queréis hacer. Si no nos toca imaginarnos para que lo queréis y a lo mejor no respondemos exactamente lo que preguntabais. Dicho esto:
Supongo que lo quieres para sacar lo que has metido en algún momento con :
session.putValue("String, Object");
Bueno pues para sacarlo es casi como lo has dicho tu:
String varJsp = session.getValue("varSesion");
Pero con el único pero que se ha olvidado hacer casting del resultado, es decir para que te funcione tendrías que poner:
String varJsp = (String) session.getValue("varSesion");
Respuesta
1
Para que esa instrucción te funcione tienes que hacer un cast del objeto. "session.getValue("varSesion")" te devuelve un objeto de sesión, por lo que tienes que obtenet el valor de ese objeto, esto se hace así:
String varJsp = (String)session.getValue("varSesion");
Creo que también existe un método que devuelve directamente el valor del objeto de sesión, esto no estoy muy seguro, pero puede que sea "getString("nombre_objeto")". Otra forma es convertir el objeto en un string, esto se hace así:
String varJsp = session.getValue("nombre_objeto").toString();
Espero haberte ayudado. Para cualquier cosa, ya sabes donde estoy!
Respuesta
1
Este sistema, te permite guardar como variables de sesión cualquier instancia de Object. Cuando lo obtienes, también obtienes una referencia a objeto. De este modo, aunque sepas que se trata de una cadena, te retorna un objeto.
¿Cómo indicar explícitamente que lo que vas a recibir es una cadena?
Pues haces un cast, y listo :)
String varJsp = (String)session.getValue("varsesion");
Y listo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas