style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

JSF - managed-bean

Hola : primero decir que el mejor foro java de la web . . . segundo me estoy volviendo loco con esto... que le falta a lo siguiente... ???? es un login . . . JSF. . . SIMPLE TENGO MIS 3 JSP Y DOS CLASES QUE VALIDAN. . . PEGO EL CODIGO . . . CUANDO PONGO EL USUARIO QUE QUIERO QUE VALIDE DESDE LA CLASE ME DA ERROR... !! PUUAJ..

POR QUE NO VALIDA CON "ADMIN" Y "PASS" ??????

LOGIN.JSP :

Usuario:

password:

*******************************
public class Usuario {

public Usuario() {

}
private String apellido;
private String nombre = "admin";

private static Usuario user;

private UsuarioModelo usuarioModelo = new UsuarioModelo();
private String saludo;

public String password = "pass";
public String usuario = "admin";

public String validaUser() {
if(UsuarioModelo.validaUsuario(getNombre(), getPassword())) {
return "success";
} else {
return "failure";
}
}

**************************************************
public class UsuarioModelo {

private static final String user = null;

public final String password = "pass";
public final String usuario = "admin";

public UsuarioModelo() {

}

public static boolean validaUsuario( String usuario,String password) {

if(usuario.equals("") && password.equals(""))
return true;
else
return false;

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Por que no valida con admin y pass?

Bueno, la verdad tienes muchas variables en tu código, y me es difícil leerlo , pero yo te diría que tu error esta en esta linea:

if(usuario.equals("") && password.equals(""))

Estas diciendo que si el usuario es vacío y el password también entonces el usuario es válido.
Mas bien coloca:

if( ! (usuario.equals("") && password.equals("")) )

Ojalá sea eso :D

mmmm no... en realidad no

mmmm no... en realidad no valida con ninguno usuario. . . tampoco con vacio. . . si cuando pongo this.usuario y en password : this.password . . . ahi si me los da como valido no entiendo por que... ??? en el managed bean tengo asi . . . puedo cargar ahi... los usuarios validos... ???

ayuda... !!!!
agrego el codigo del login.jsp

Usuario:td
h:inputText value="#{usuario.nombre}"

password:
h:inputText value="#{usuario.password}"

commandButton value="Login" action="#{usuario.validaUser}"

+++++++++++++++++++
y el managed bean

managed-bean
managed-bean-name>usuario
managed-bean-class>Modelo.Usuario
managed-bean-scope>request
managed-bean

¿y en tu faces-config.xml?

¿Y en tú faces-config.xml ya tienes algo que responda a succes?

¿Quizas despues de que tu bean regresa succes no hay algo que tenga que hacer?

por ejemplo

   <navigation-case>
   <from-outcome>succes</from-outcome>
   <to-view-id>/alguna_pagina.jsp</to-view-id>
  </navigation-case>

si si,,, lo tiene ... ESTA

si si,,, lo tiene ... ESTA BIEN ,.. ESA PARTE ... LA PARTE QUE NO FUNCIONA ES QUE NO ME VALIDA NINGUN USUARIO Y CONTRASEÑA...

AYUDA,,,,, !!!!

seguro algo en tú validación esta mal

Salvo que estes probando la funcionalidad del bean no entiendo porque comparas con "" cadena vacia

Postea algo mas de código para poder ayudarte

public static boolean

public static boolean validaUsuario( String usuario,String password) {

if (usuario.equals("admin") && password.equals("pass"))
return true;
else
return false;
}

eso medifique del codigo para que me valide con admin y pass... pero nada...

solo me toma this.usuario y this.password .

no entiendo ????

No había visto

No había visto bein tú código pero en una linea tienes

private static final String user = null;

public final String password = "pass";

y luego en tú comparación tienes

if(usuario.equals("") && password.equals(""))

No manches nunca sucederá que te regrese true (si es lo que buscas)

OK

Ya entendí en tu validación cambia esto

public static boolean validaUsuario( String usuario,String password) {

if (usuario.equals("admin") && password.equals("pass"))
return true;
else
return false;
}

por esto

public static boolean validaUsuario( String usuario,String password) {

if (this.usuario.equals(usuario) && this.password.equals(password))
return true;
else
return false;
}

MMMM NO .... ME DA ERROR... Y

MMMM NO .... ME DA ERROR... Y NO VALIDA... PUFFFF

public static boolean validaUsuario( String usuario,String password) {
if (this.usuario.equals(usuario) && this.password.equals(password))
return true;
else
return false;
}

public final String password

public final String password = "pass";
public final String usuario = "admin";

ESAS SERIA MIS VARIABLES...

Y ESTA MI COMPARACION :

public static boolean validaUsuario( String usuario,String password) {
if (usuario.equals("admin") && password.equals("pass"))
return true;
else
return false;
}

Pero no entiendo... te da

Pero no entiendo... te da error?... es decir acaso arroja alguna excepción... O simplemente no funciona como debería?

siempre me manda a mi pagina

siempre me manda a mi pagina error.jsp .

osea no valida mi usuario y password. . .

es SIMPLE PERO ME ARTE DE PROBAR --- EL PROBLEMA ESTA EN EL EQUAL . . . OSEA... FIJATE QUE PEGUE EL CODIGO DE LAS DOS CLASES JAVA... Y DEL LOGIN.JSP... SI TENES ALGUN IDE... PROBALO... Y VAS A VER QUE NO FUNCIONA... OSEA NINGUN USUARIO VALIDA... NO SE DONDE CARGARLO PARA QUE ESE USUARIO "?" SEA EL CORRECTO... Y ME MANDE A MI PAGINA SALUDO.JSP. . ..

GRACIAS... X LA AYUDA... . . . !!! Y AVER SI DAMOS EN LA TECLA...

Solución de tu JSF

ok mira..

Primero quita la palabra static que tienes en el metodo validaUsuario de la clase UsuarioModelo, a mi me parece que no es necesario tampoco las propiedades que tiene esa clase, como usuario y password, te dejo la clase asi:

public class UsuarioModelo {

    public UsuarioModelo() {}

    public boolean validaUsuario( String usuario, String password ) {
        if( usuario.equals("usuario") && password.equals("password"))
            return true;
        else
            return false;
    }

}

Luego, la clase Usuario que tu tienes ponla asi:

public class Usuario {

    private String apellido;
    private String nombre = "admin";
    private static Usuario user;

    private UsuarioModelo usuarioModelo;
    private String saludo;
    public String password ="b";
    public String usuario = "a";

    public Usuario() {
        usuarioModelo = new UsuarioModelo();
    }

    public String validaUsuario() {
        if( usuarioModelo.validaUsuario(usuario, password))
            return "success";
        else
            return "failure";
    }
 // OJO: aqui van los getters y setter de usuario, password y UsuarioModelo
}

y en el login.jsp pones:

<h:body>
        <h:form>
        <h:inputText value="#{usuario.usuario}"/>
        <h:inputText value="#{usuario.password}"/>
        <h:commandButton action="#{usuario.validaUsuario}" value="Login"/>
        </h:form>
    </h:body>

Te sale asi:

Si el usuario es "a" y el password es "b" entonces te sale la pagina "success":

Aunque tengo que aclararte que yo lo hice con JSF 2.0, no con la versión 1.2 :D

mil gracias hermano... !!!

mil gracias hermano... !!! pero debe ser mi fuck eclipse... me tira ese error... al poner cualquier pass o usuario... me doy... !!!

exception

javax.servlet.ServletException: javax.el.MethodNotFoundException: Method not found: Modelo.Usuario@1f8199e.validaUsuario()
root cause

javax.faces.el.MethodNotFoundException: javax.el.MethodNotFoundException: Method not found: Modelo.Usuario@1f8199e.validaUsuario()
root cause

javax.el.MethodNotFoundException: Method not found: Modelo.Usuario@1f8199e.validaUsuario()

A mi también me tiraba ese

A mi también me tiraba ese error :D
Es porque te faltan los getters y setters para UsuarioModelo en la clase Usuario.

Pon este codigo en la clase Usuario:

public UsuarioModelo getUsuarioModelo() {
        return usuarioModelo;
    }

    public void setUsuarioModelo(UsuarioModelo usuarioModelo) {
        this.usuarioModelo = usuarioModelo;
    }

Sino, inténtalo con el código que te dejé arriba a ver que pasa.

si se lo cargue... fuck...

si se lo cargue...

fuck... java... no le encuentro la logica al error... ese... ( puse el codigo tal cual me lo enviaste )

PERO MIL GRACIAS... ME AYUDASTE UN MONTON... ABRAZOOOO... !!!!

Imagen de ingscjoshua

dale un clean al tu proyecto

aveces se quedan los errores en la memoria!!!, para el server de aplicaciones y dale un clean si aun asi no funcioona tira el deploy del server y vuelve a subirlo

mmm no no es eso... es que a

mmm no no es eso... es que a los usuarios los debe autenticar desde el face-config . ..

ej property-name>usuarioList
ist-entries>
Modelo.Usuario
#{usuario1}
#{usuario2}
list-entries>
/managed-property>
/managed-bean>

managed-bean-name>usuario1
managed-bean-class>Modelo.Usuario
managed-bean-scope>session
managed-property>
property-name>nombre
value>AAA

como hago para que desde la

como hago para que desde la pagina jsp (login que pegue mas arriba ) valide desde una clase - mis usuarios y password cargados en el managed bean ??????¿¿¿¿¿¿????

como hago para que desde la

como hago para que desde la pagina jsp (login que pegue mas arriba ) valide desde una clase - mis usuarios y password cargados en el managed bean ??????¿¿¿¿¿¿????

Imagen de neko069

Creo que sería mejor que

Creo que sería mejor que perdieras un par de horas comprendiendo la documentación a perder un par de días, tratando de hacer algo a ciegas...

entiendo la documentacion . .

entiendo la documentacion . . . . .

tengo un inconveniente que por indagar tantas veces ya no lo veo . . .

osea. . . no es que estoy pidiendo que alguien haga algo... si no que estoy compartiendo algo... para que dos cabezas... piensen mas que una. . .

osea...

es simple...

cargo los user en el managed bean. . . pero no me doy cuenta como validarlos en la clase...

gracias...de todos modos. . .

Tu usas eclipse

Tu usas eclipse cierto?...
Revisa si esto te sirve, ahí implementan una aplicación simple tipo login, como lo que estas haciendo:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EclipseJSF

Suerte con eso.

si es buena hermano...

si es buena hermano... sirve...

Pero parece que en mundo entero nadie valida a atravez de managed bean que es lo que necesito... !!!! pufff...

usuario
admin

password
pass1

la idea es que valide... con admin y pass : pass1... atravez de valores que le pasamos al managed...

GRACIAS... !!! BUEY.. !!

Imagen de neko069

osea. . . no es que estoy

osea. . . no es que estoy pidiendo que alguien haga algo...

No insinué que quieras el trabajo ya hecho.. por el contrario, es bueno sacar las dudas; lo que digo es que, no estás entendiendo bien el mecanismo de back beans (managed beans) que implementa el JSF.
Iba a intentar hacer algo de código para ver qué onda con tu duda, pero la liga que hace el favor de compartir @kaztle_8 está muy parecido (si no es que es exactamente igual )a lo que necesitas.

Pero igual si te recomiendo encarecidamente que leas la documentación, y que cheques bien qué cosas se definen, y cómo funciona el mecanismo de petición-respuesta, que es lo que casualmente vas a ocupar mucho.

Imagen de neko069

Pero parece que en mundo

Pero parece que en mundo entero nadie valida a atravez de managed bean que es lo que necesito

En la liga, la validación se hace a través de un Managed Bean, no hay servicios de ninguna otra clase.

GRACIAS... !!! BUEY.. !!

O_o

SI SI... LO TENGO CLARO... LO

SI SI... LO TENGO CLARO...

LO QUE LOGRO... ES QUE EL USER Y PASS QUE CARGO EN MANAGED BEAN . PUEDA VALIDARLO DESDE UNA CLASE. . . EJEMPLO CLARO.

MANAGED BEAN : CARGO EL USER "a" Y PASS " B " BAJO LA PROPERTY usuarioList .

CLASE : for (Usuario user : usuarioList) {
if ( user.getUsuario().equalsIgnoreCase(this.usuarioIngreso) && user.getPassword().equals(this.passwordIngreso)){
return "valido";
}
}

return "fallo"

JSP : EL QUE PEQUE ANTES...

PUES BIEN... ESO... QUE ESTOY TRATANDO DE HACER... EN EL MUNDO... NADIE LO INTENTO... X Q EN GOOGLE NO FIGURAN EJEMPLOS... ( ES IRONICO... ))

ABRAZOOO.-... !!!

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">