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

problema con addActionMessage struts2

Estas en el tema de problema con addActionMessage struts2 en el foro de Java en Foros del Web. Hola a todos tengo la siguiente pregunta: Como ven en struts puedo mandar msj en el jsp agregando en la programacion interna addActionMessage y con ...
  #1 (permalink)  
Antiguo 03/10/2011, 15:41
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 4
problema con addActionMessage struts2

Hola a todos tengo la siguiente pregunta:
Como ven en struts puedo mandar msj en el jsp agregando en la programacion interna addActionMessage y con esto me muestra el msj en el jsp:

tengo algo asi:

Código PHP:
addActionMessage("No existe usuario o clave incorrecta"); 
que aparece cuando el usuario no esta dado de alta o no se ha logeado de una forma correcta. Lo cual lo hace de maravilla cuando pasa este caso

Mi problema es que cuando hace un logeo correcto y lo manda a la pagina que sigue en el sistema por ejemplo menu.jsp se lleva ese msj por que en el ese jsp tengo la propiedad

Código PHP:
<s:actionmessage/> 
pero se supone que ya no deberia de traer este msj... ya quedo atras no entiendo como quitarlo o que no aparezca ya cuando hace un logeo correcto,
  #2 (permalink)  
Antiguo 04/10/2011, 10:34
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: problema con addActionMessage struts2

Limpia el conjunto de actionMessages en el action antes de hacer las comprobaciones. Seguramente están persistiendo.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 04/10/2011, 10:56
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: problema con addActionMessage struts2

Como las limpio!?
  #4 (permalink)  
Antiguo 04/10/2011, 14:37
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: problema con addActionMessage struts2

Lo normal es que en el action se defina una collection de actionErrors, y si hay alguno se añade con el mensaje.

En la JSP se debería comprobar que existen esos errores, normalmente se utilizan los tags de JSTL con un <c:if .. y dentro del if se comprueba que existen errores y se añade el actionmessage. Si no lo pones condicional siempre te saldrá el message.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 04/10/2011, 16:28
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: problema con addActionMessage struts2

Hola Fuzzylog te comento ya hice lo que me recomendaste en la pagina de index.jsp
puse:

Código PHP:
<s:if test="usuario.area == null ">
<
s:actionmessage/>
</
s:if> 
funciona correctamente cuando no me presento con las credenciales correctas me bota el mensaje que mando en el actionessage.

pero si hace un correcto login lo manda a la pagina menu.jsp donde tambien tengo
Código PHP:
<s:if test="bandera==0">
<
s:actionmessage/>
</
s:if> 
pero con otra condicion!!, a un asi me sigue saliendo el msj de la primera pagina de index.jsp, que no se supone que con esto ya deberia de haber quedado?
  #6 (permalink)  
Antiguo 04/10/2011, 17:45
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: problema con addActionMessage struts2

Todo depende de cómo estás enlazando las JSP, si haces un chain, forward o semejante, la request se mantiene, por lo tanto tu actionMessage sigue teniendo contenido.

Aquí tienes el caso contrario, como mantener los message si usas los redirect

http://glindholm.wordpress.com/2008/...t-in-struts-2/

Así que o vacías manualmente el actionmessage, o usas un redirect.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 06/10/2011, 05:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: problema con addActionMessage struts2

Hola herwex,
Yo separaría el AddActionMessage para los mensajes informativos y el AddActionError para los mensajes de error.

Solo con esto, ya no tendrás problemas cuando el logueo sea correcto.

Un saludo!
  #8 (permalink)  
Antiguo 06/10/2011, 08:33
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: problema con addActionMessage struts2

Hola ElAthlit siento que tu respuesta es buena pero es lo que no entiendo es que se diferencia el AddActionMessage del AddActionError? te agradeceria tu respuesta!!
  #9 (permalink)  
Antiguo 06/10/2011, 08:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: problema con addActionMessage struts2

Hola herwex,
visualmente en el JSP no hay diferencia, el mensaje se mostrará del mismo modo, pero a ti te puede servir para saber si has tenido errores en el Action.

Por ejemplo:

Código Java:
Ver original
  1. //Si el pass es admin... genial, sino informamos del error. Hasta aquí OK.
  2.  
  3. if (strPassword.equals("admin")){
  4. addActionMessage("Login OK");
  5. }else{
  6. addActionError("Login fail");
  7. }
  8.  
  9. //Toda esta lógica podría ser MUCHO más extensa, con multitud de validaciones.
  10.  
  11. //Entonces, al final del Action llega la gran pregunta.
  12.  
  13. //Si hay errores (es decir, si hay algún AddActionError)....
  14. if (hasActionErrors){
  15. return "error"
  16. }else{
  17. return SUCCESS;
  18. }


Esta forma de aprovechar el AddAcionMessage y AddActionError te facilita mucho las cosas a la hora de retornar el tipo de return

Un saludo!
  #10 (permalink)  
Antiguo 06/10/2011, 10:31
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: problema con addActionMessage struts2

ElAthlit puse tal como vi en tu ejemplo algo asi

if(usuario.getArea().equals("superadmon"))
{
return "superadmon";
}

else
{
addActionError("No existe usuario o clave incorrecta");
return ERROR;
}

y si aparece el msj bien pero cuando pongo despues de que ingrese credenciales equivocadas, ingreso credenciales validas presiono enter y me sale el sig. error


type Informe de estado

mensaje No result defined for action com.main.action.Ingresar and result input

descripción El recurso requerido (No result defined for action com.main.action.Ingresar and result input) no está disponible.
  #11 (permalink)  
Antiguo 07/10/2011, 01:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: problema con addActionMessage struts2

Hola herwex,
por el error que te da, se está quejando de que en el fichero struts.xml donde tienes definido el Action no tienes definido el tipo de retorno return "superadmon";, simplemente añádelo con el JSP de salida correspondiente.

Un saludo!

Etiquetas: jsp, struts, struts2
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 16:49.