Fórum valor null ao submeter formulário | JSF e Hibernate #414759
29/03/2012
0
to usando JSF e Hibernate pra desenvolver uma aplicação, onde por enquanto to fazendo o sistema de login que como segue abaixo:
<?xml version=1.0 encoding=ISO-8859-1 ?>
<!DOCTYPE composition PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<ui:composition xmlns=http://www.w3.org/1999/xhtml
xmlns:ui=http://java.sun.com/jsf/facelets
xmlns:f=http://java.sun.com/jsf/core
xmlns:h=http://java.sun.com/jsf/html
template=/arquivos/administrarTemplate.xhtml>
<ui:define name=conteudo>
<h:form rendered=#{!loginAdministradorManagedBean.loginAdministrador.validate}>
<h:panelGrid columns=2>
<h:outputLabel value=Login: for=login />
<h:inputText name=login id=login />
<h:outputLabel value=Senha: for=senha />
<h:inputSecret name=senha id=senha />
<h:commandButton value=Entrar
action=#{loginAdministradorManagedBean.fazerLogin} />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>Bom acontece que quando eu submeto esse formulário, o managedBean não recebe nenhum valor, nele eu mando imprimir o valor de login no método fazerLogin, não preciso ainda me preocupar com DAO, Hibernate, etc... preciso apenas que este valor chegue preenchido no método citado:
segue ManagedBean:
@ManagedBean
@SessionScoped
public class LoginAdministradorManagedBean {
private String login, senha;
private LoginAdministrador loginAdministrador = new LoginAdministrador();
//aqui eu tenho os Getters e Setters
public String fazerLogin() {
System.out.println(login); //aqui chega null
System.out.println(senha); //aqui chega null
if (loginAdministrador.fazerLogin(getLogin(), getSenha())) {// e aqui a comparação, logicamente vai retornar false.
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fc.getExternalContext()
.getSession(false);
session.setAttribute(administrador, loginAdministrador.getAdministrador());
return /sucesso.xhtml;
} else {
return /falha.xhtml;
}
}
}Sou novo em programação em geral, desde já obrigado!
Jean Lenon
Curtir tópico
+ 0Posts
29/03/2012
Jean Lenon
<?xml version=1.0 encoding=ISO-8859-1 ?>
<!DOCTYPE composition PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<ui:composition xmlns=http://www.w3.org/1999/xhtml
xmlns:ui=http://java.sun.com/jsf/faceletsx
xmlns:f=http://java.sun.com/jsf/core
xmlns:h=http://java.sun.com/jsf/html
template=/arquivos/administrarTemplate.xhtml>
<ui:define name=conteudo>
<h:form rendered=#{!loginAdministradorManagedBean.loginAdministrador.validate}>
<h:panelGrid columns=2>
<h:outputLabel value=Login: for=login />
<h:inputText name=login id=login />
<h:outputLabel value=Senha: for=senha />
<h:inputSecret name=senha id=senha />
<h:commandButton value=Entrar action=#{loginAdministradorManagedBean.fazerLogin} />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
segue ManagedBean:
@ManagedBean
@SessionScoped
public class LoginAdministradorManagedBean {
private String login, senha;
private LoginAdministrador loginAdministrador = new LoginAdministrador();
//aqui eu tenho os Getters e Setters
public String fazerLogin() {
System.out.println(login); //aqui chega null
System.out.println(senha); //aqui chega null
if (loginAdministrador.fazerLogin(getLogin(), getSenha())) {// e aqui a comparação, logicamente vai retornar false.
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
session.setAttribute(administrador, loginAdministrador.getAdministrador());
return /sucesso.xhtml;
} else {
return /falha.xhtml;
}
}
}Gostei + 0
29/03/2012
Jean Lenon
<?xml version=1.0 encoding=iso-8859-1 ?>
<!doctype composition public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
<ui:composition xmlns=http://www.w3.org/1999/xhtml
xmlns:ui=http://java.sun.com/jsf/faceletsx
xmlns:f=http://java.sun.com/jsf/core
xmlns:h=http://java.sun.com/jsf/html
template=/arquivos/administrartemplate.xhtml>
<ui:define name=conteudo>
<h:form rendered=#{!loginadministradormanagedbean.loginadministrador.validate}>
<h:panelgrid columns=2>
<h:outputlabel value=login: for=login />
<h:inputtext name=login id=login />
<h:outputlabel value=senha: for=senha />
<h:inputsecret name=senha id=senha />
<h:commandbutton value=entrar action=#{loginadministradormanagedbean.fazerlogin} />
</h:panelgrid>
</h:form>
</ui:define>
</ui:composition>
segue managedbean:
@managedbean
@sessionscoped
public class loginadministradormanagedbean {
private string login, senha;
private loginadministrador loginadministrador = new loginadministrador();
//aqui eu tenho os getters e setters
public string fazerlogin() {
system.out.println(login); //aqui chega null
system.out.println(senha); //aqui chega null
if (loginadministrador.fazerlogin(getlogin(), getsenha())) {// e aqui a comparação, logicamente vai retornar false.
facescontext fc = facescontext.getcurrentinstance();
httpsession session = (httpsession) fc.getexternalcontext().getsession(false);
session.setattribute(administrador, loginadministrador.getadministrador());
return /sucesso.xhtml;
} else {
return /falha.xhtml;
}
}
}
Nossaaaaa velho!
Depois de passar um dia inteiro procurando resolver essa bagaça, fui tomar um café e pensei em fazer um teste tipo olá mundo da vida ae, daí foi que percebi que na linha:
<h:inputText name=login id=login />
o certo seria:
<h:inputText name=login id=login value=#{loginAdministradorManagedBean.login}/>
e tá resolvido!
Gostei + 0
29/03/2012
Davi Costa
<h:inputtext name=login id=login />
para:
<h:inputtext name=login id=login value =#{loginAdministradorManagedBean.login}/>
Para o jsf saber qual atributo deve receber akele valor...
faz o mesmo para a senha.
att Davi
Gostei + 0
05/04/2012
Jean Lenon
Gostei + 0
06/04/2012
Diogo Souza
<?xml version=1.0 encoding=iso-8859-1 ?>
<!doctype composition public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
<ui:composition xmlns=http://www.w3.org/1999/xhtml
xmlns:ui=http://java.sun.com/jsf/faceletsx
xmlns:f=http://java.sun.com/jsf/core
xmlns:h=http://java.sun.com/jsf/html
template=/arquivos/administrartemplate.xhtml>
<ui:define name=conteudo>
<h:form rendered=#{!loginadministradormanagedbean.loginadministrador.validate}>
<h:panelgrid columns=2>
<h:outputlabel value=login: for=login />
<h:inputtext name=login id=login />
<h:outputlabel value=senha: for=senha />
<h:inputsecret name=senha id=senha />
<h:commandbutton value=entrar action=#{loginadministradormanagedbean.fazerlogin} />
</h:panelgrid>
</h:form>
</ui:define>
</ui:composition>
segue managedbean:
@managedbean
@sessionscoped
public class loginadministradormanagedbean {
private string login, senha;
private loginadministrador loginadministrador = new loginadministrador();
//aqui eu tenho os getters e setters
public string fazerlogin() {
system.out.println(login); //aqui chega null
system.out.println(senha); //aqui chega null
if (loginadministrador.fazerlogin(getlogin(), getsenha())) {// e aqui a comparação, logicamente vai retornar false.
facescontext fc = facescontext.getcurrentinstance();
httpsession session = (httpsession) fc.getexternalcontext().getsession(false);
session.setattribute(administrador, loginadministrador.getadministrador());
return /sucesso.xhtml;
} else {
return /falha.xhtml;
}
}
}
nossaaaaa velho!
depois de passar um dia inteiro procurando resolver essa bagaça, fui tomar um café e pensei em fazer um teste tipo olá mundo da vida ae, daí foi que percebi que na linha:
<h:inputtext name=login id=login />
o certo seria:
<h:inputtext name=login id=login value=#{loginadministradormanagedbean.login}/>
e tá resolvido!
Só retificando, não esqueça as aspas dos atributos para deixar o código mais limpo e padronizado:
<h:inputText name=login id=login />
Abs!
Gostei + 0
06/04/2012
Diogo Souza
Gostei + 0
14/04/2012
Dyego Carmo
Valeu !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)