Primefaces + a ação do commandButton as vezes não é executada

5 respostas
andwolf

Olá pessoas,

Estou criando um sistema de cadastro básico - trabalho da facul - estou utilizando NetBeans 7.1 + Glassfish 3 + MySQL + Primefaces 3.2.

Agora vamos ao problema com o commandButton:

As vezes quando clico no botão, mesmo ele não tendo um método sendo acionado diretamente na Beans, apenas pela actionListener ele não executa o camando, fica como se o botão não tivesse função nenhum:

Botão 1:
<p:commandButton action="cadastraCurso" actionListener="#{cursoBean.novo}" im value="Novo" />
Quando a ação resulta na chamada de um método também acontece isso: Botão 2:
<p:commandButton action="#{cursoBean.inserir}"  value="Inserir"/>
Segue métodos usados da cursoBean e a declaração da classe:
public void novo(){
        curso = new Curso();
        campus = null;
    }

    public String inserir(){
        String resultado = "erro";
        
        curso.setCampus(campus);
        
        cursoDAO = new CursoDAO();
        boolean retorno = cursoDAO.inserir(curso);

        if(retorno){
            resultado = "gerenciaCursos";
        }

        return resultado;
    }
Declaração da classe:
@Named
@SessionScoped
public class CursoBean implements Serializable{

Iae Alguém já passou por isso?

5 Respostas

Diego_Adriano

Faça assim:

<p:commandButton value="Salvar" ajax="false" icon="ui-icon-disk"
			action="#{clienteBean.salvar}" update="dadosCliente"/>
Bean:
public void salvar(){
		
	ClienteRepository repository = new ClienteRepository(this.entityManager);
        repository.cria(cliente);
	cliente = new Cliente();
}
andwolf

É gente não funcionou,

Procurei bastante, mas ainda não achei solução. Alguém tem mais alguma ideia?

poderia ser alguma configuração na web.xml

estou mandando ela:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>UniServlet</servlet-name>
        <servlet-class>controle.UniServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UniServlet</servlet-name>
        <url-pattern>/UniServlet</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>cursos.xhtml</welcome-file>
    </welcome-file-list>
</web-app>
leoramos

Só por curiosidade, tu tá mapeado tua classe como @Named por qual motivo? Se tu tá fazendo alguma chamada usando um valueChangeHandler ele NÃO vai funcionar com essa anotação, só com @ManagedBean.
Mas isso é só um palpite…

Ewerton_Henrique

coloca ajax=“false” no seu commandButton.

b10machado

verifica o q pessoal falou, e tbm os forms!!

Criado 23 de março de 2012
Ultima resposta 26 de mar. de 2012
Respostas 5
Participantes 5