Pages

Sunday, November 25, 2007

Un poco de JSF

Despues de buscar y rebuscar en la web, encontre lo que necesitaba a mi problema:

Problema: Deseo recuperar un valor del objeto "session" creado en una JSP, en un java bean, es decir necesito recuperar el objeto "session" en mi java bean.

Solucion: La soluciones genial porque no solo puedo recuperar los valores del objeto session, sino que puedo ponerle mas como estado de la sesion de un usuario, nombre del usuario a mostrarse, etc. En el java bean debo escribir el siguiente codigo:

-------------------------------------------------------------------------------------------------

import javax.faces.application.*;
import javax.faces.context.*;
import javax.servlet.http.*;
public static HttpSession currentContext()
{
ExternalContext G = FacesContext.getCurrentInstance().getExternalContext();
HttpSession session = (HttpSession) G.getSession(true);

return session;
}

-------------------------------------------------------------------------------------------------

Esto me devuelve la sesion actual y de ahi puedo hacer lo que quiera :)

Yo necesitaba recuperar el valor generado de simpleCaptcha (el proyecto de SourceForge para generar captchas), ya que este valor se guarda en el objeto "session", escribi la siguiente funcion:

-----------------------------------------------------------------------------------

public String recuperarCodigoCaptcha(){
String captchaGenerado;
HttpSession session = currentContext();
captchaGenerado = (String)session.getAttribute(nl.captcha.servlet.Constants.SIMPLE_CAPCHA_SESSION_KEY);
System.out.println("CODIGO CAPTCHA GENERADO = " + captchaGenerado);
return captchaGenerado;
}

------------------------------------------------------------------------------------

De ahi ya se puede jugar con el valor generado del captcha :D

Parece que no se ve toda la sentencia para tomar el valor del codigo generado captcha, pues al final va: "Y);" eso es todo, es en donde dice: "....Constants.SIMPLE_CAPCHA_SESSION_KE"

Parte de este codigo lo obtuve de:

http://community.sgdotnet.org/blogs/shunjie/archive/2005/09/08/20726.aspx

Mas recursos de lo mismo en:

http://forum.java.sun.com/thread.jspa?threadID=5159649&messageID=9607156

http://www.exadel.com/tutorial/jsf/jsftutorial-guessnumber.html

http://balusc.blogspot.com/2006/06/communication-in-jsf.html#AccessingTheFacesContextInsideHttpServletOrFilter

http://forum.java.sun.com/thread.jspa?threadID=757152&messageID=4325532

Saludos people :D

No comments: