martes, agosto 16, 2011

Creando una aplicacion con JSF RichFaces parte III

En esta ocacion haremos la integracion de nuestro proyecto con el framework de spring, que nos ayudara a hacer inyeccion de dependencias he integrar funcionalidades me una manera mas facil y transparente.

En la anterior entrada olvide comentar 2 puntos, donde poner el log4j y como invocarlo
     

     log4jConfigLocation     /WEB-INF/log4j.xml

     
          org.springframework.web.util.Log4jConfigListener
     


Ahora si para agregar spring a nuestro proyecto: 

1.- Agregando las librerias
/**
* En mi Caso utilizo las varsiones 3.0.5 de estos jar
* org.springframework.asm.jar
* org.springframework.beans.jar
* org.springframework.context.jar
* org.springframework.core.jar
* org.springframework.expression.jar
* org.springframework.web.jar
*/
2.- Creando el application-context.xml






3.- Modificando el web.xml


     contextConfigLocation               /WEB-INF/applicationContext-faces.xml
     
	


     
          org.springframework.web.context.ContextLoaderListener
     


     
          org.springframework.web.util.IntrospectorCleanupListener
     


     
          org.springframework.web.context.request.RequestContextListener
     


4.- Modificando el faces-config.xml







     org.springframework.web.jsf.DelegatingVariableResolver


5.- Creando los bean
/**
* lo hare estilo struts, un form que llamo bean y un action que llamo "cont"
* el bean lo coloco en com.tutorial.rich.faces.bean
* el contenedor lo coloco en com.tutorial.rich.faces.content
*/

public class Login {
private String usuario;
private String password;

public String getUsuario() {
	return usuario;
}
public void setUsuario(String usuario) {
	this.usuario = usuario;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
}

/**
* agrego una llamada a mi log4j
*/
public class LoginCont {
	private static Logger log = Logger.getLogger(LoginCont.class);
	
private Login loginBean;

public Login getLoginBean() {
	return loginBean;
}
public void setLoginBean(Login loginBean) {
	this.loginBean = loginBean;
}

public String cmdLogin(){
	if(getLoginBean().getUsuario().equals("") 
|| getLoginBean().getPassword().equals("")){
		log.info("usuario invalido");
	}else{
		log.info("usuario valido");		
	}
	return null;
}
}
6.- Invocando al bean desde el jsp

  
    



















NOTAS, HASTA AQUI TENEMOS CONFIGURADO SPRING Y UN EJEMPLO DE COMO ACCESAREMOS A LOS BEANS,
PERO AUN NO EXPLICO EL FUNCIONAMIENTO DE JSF, LO HARE AL MOMENTO QUE TENGAMOS HIBERNATE INTEGRADO CON NUESTRO PROYECTO..., RECUERDA SI TIENES DUDAS U OBSERVACIONES AGRADECERE TUS COMENTARIOS

miércoles, agosto 10, 2011

Creando una aplicacion con JSF RichFaces parte II

Hola que tal, despues de una larga ausencia regreso con este tutorial de richfaces, espero no ausentarme tanto otra ves :P.

En la entrada anterior vimos como dejar nuestra aplicacion lista para utilizar este framework, en esta ocacion agregaremos la internacionalizacion y dejaremos habilitado nuestro log4j.

1.- Crearemos el paquete donde estaran nuestros resources y creando los resources
/*
     * El paquete lo llamare com.tutorial.rich.resources
     * crearemos dos resources los cuales llamaremos
     * ApplicationResources_en_EN.properties y
     * ApplicationResources_es_MX.properties respectivamente
     * ApplicationResources_ es el nombre generico que les damos 
     * a nuestros resources, por lo cual le podemos dar cualquier nombre
     * es_MX o en_EN son los codigos de lenguaje y pais
     * si quieres saber mas de esto busca informacion sobre la clase Locale de java
     */

     /* La informacion contenida en ApplicationResources_en_EN.properties
     *
     * login_lblTituloPag=Login
     * login_lblUsuario=User
     * login_lblPassword=Password
     */

     /* La informacion contenida en ApplicationResources_es_MX.properties
     *
     * login_lblTituloPag=Login
     * login_lblUsuario=Usuario
     * login_lblPassword=Contraseña
     */

     /*
     * ¿ Por que no usuamos los timpicos login.lbl.titulo.pag 
     * y utilizamos login_lblTituloPag ?
     * por que a diferencia de Strust por ejemplo, jsf reconoce el punto
     * como si intentaramos acceder a un elemento de un objeto
     * por lo tanto utilizamos el guion bajo, "para este ejemplo"
     * no es una norma
     */

2.- Modificando el faces-config



    


     
          com.tutorial.rich.resources.ApplicationResources
          msgs
     
     
          en_EN
     








3.- Agregando un JSP con etiquetas, que cambiaran dependiendo del idioma
/*
     * En el jsp que se creo por default, (index) agregaremos en la parte superior 
     * las siguientes taglibs
     */

     <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
     <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
     <%@taglib prefix="rich" uri="http://richfaces.org/rich" %>

     /*
     * En el body del jsp agregaremos lo siguiente
     */
     
          
               
                    
                         						
                    
                    

/* * no explicare el porque de cada etiqueta, hasta la siguiente entrada * pero observen que para acceder a los mensajes utilizo por ejemplo * * en value hago el llamado a la etiqueta msgs que declaramos en el faces-config * luego solo hago referencia a la etiqueta del resource que deseo utilizar */
4.- Configurando web.xml

     
     
     
          faces/index.jsp
     


5.- Probando la aplicacion
/*
      * para probar solo es mover el codigo en el faces-config  de
      * en_EN a
      * es_MX
      */
6.- Configurando log4j