PrimeFaces não funciona botão

6 respostas
R

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

Criei a página assim :
<!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>

O Managed bean não tem nada de especial

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

}

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 ?

6 Respostas

J

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

C

O arquivo telaInicial.xhtml existe?

C

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

M

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

R

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.

M

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

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

Criado 12 de outubro de 2011
Ultima resposta 22 de jun. de 2012
Respostas 6
Participantes 6