PrimeFaces não funciona botão

comecei a estudar o primefaces e to com problemas para fazer um botão chamar uma action no MB:

Criei a página assim :

[code]
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:p=“http://primefaces.prime.com.tr/ui”>

<h:head>
<title>SeekWeb</title>
<meta http-equiv=“content-type” content=“text/xhtml; charset=UTF-8” />

</h:head>

<body>
<h:form >
<p:commandButton type=“buttom” id=“login” action="#{loginBean.autenticar}" value=“autenticar” />
</h:form>
</body>
</html>[/code]

O Managed bean não tem nada de especial

[code]
import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class LoginBean implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String usuario="usuario";
private String password="pass";


public String autenticar() {

	return "telaInicial";
}

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;
}

}[/code]

Porem qdo clico no botão, o managed bean não é chamado.
Se eu trocar o botão para um h:commandbuttom ai sim ele chama o managed bean.
Existe alguma particularidade nos botões do primefaces que eu não estou vendo ? Alguem ja teve este problema ?

1 curtida

Olá rogeriosantos77

Na tag commandButton

<p:commandButton type=“buttom” id=“login” action="#{loginBean.autenticar}" value=“autenticar” />

Remova o atributo type=“button”;

Ficaria assim:

<p:commandButton id=“login” action="#{loginBean.autenticar}" value=“autenticar” />

Espero ter ajudado.

Abraços

O arquivo telaInicial.xhtml existe?

Ao invéz da propriedade action, use actionListener que irá resolver :slight_smile:

marcou a classe com a anotacao managedbean. eu esqueco direto rsss

Eu coloquei o atributo do ajax=false no botão e ai resolveu.

Confesso que não entendi o porque pois pelo que li o default é false e mesmo assim porque o true impediria tal ação?
Se alguém souber e quiser tirar essa dúvida.

1 curtida

[quote=rogeriosantos77]Eu coloquei o atributo do ajax=false no botão e ai resolveu.
[/quote]

Amigo obrigado por colocar a solução!
Quebrou um galho!