[RESOLVIDO] - Problema de ajax com PrimeFaces

2 respostas
A

Fala galera, tudo bom?

Gente é o sguinte, copiei o seguinte código do site do PrimeFaces (http://www.primefaces.org/showcase/ui/pprAjaxStatusScript.jsf), e acontece que, no site funciona, mas no netbeans não.

Fiz o seguinte:

Copiei o código, colei no netbeans deixei igualzinho e não funciona nem a pau.

Segue o código que copiei, que funciona no site:

<p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>
			
<p:dialog modal="true" widgetVar="statusDialog" header="Status" 
        draggable="false" closable="false">
	<p:graphicImage value="/design/ajaxloadingbar.gif" />
</p:dialog>

<h:form>

	<p:panel id="panel" header="Ajax Status">

		<p:messages />
		
		<h:panelGrid columns="3" cellpadding="5">
			<h:outputLabel for="firstname" value="Firstname: *" />
			<p:inputText id="firstname" 
					value="#{personBean.firstname}" 
					required="true" label="Firstname">
				<f:validateLength minimum="2" />
			</p:inputText>
			<p:message for="firstname" />
			
			<h:outputLabel for="surname" value="Surname: *" />
			<p:inputText id="surname" 
					value="#{personBean.surname}" 
					required="true" label="Surname"/>
			<p:message for="surname" />

		</h:panelGrid>
		
		<p:commandButton value="Submit" update="panel" 
				actionListener="#{personBean.savePerson}" />

	</p:panel>
	
</h:form>
package org.primefaces.examples.view;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

public class PersonBean {

	private String firstname;
	
	private String surname;

	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	public String getSurname() {
		return surname;
	}
	public void setSurname(String surname) {
		this.surname = surname;
	}
	
	public void savePerson(ActionEvent actionEvent) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + surname + "!"));
	}
}
					
}

O que eu fiz no netbeans, simplesmente colei e não fuciona:

<?xml version='1.0' encoding='UTF-8' ?>
<!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:p="http://primefaces.prime.com.tr/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <p:ajaxStatus onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/>

        <p:dialog modal="true" widgetVar="statusDialog" header="Status"
                  draggable="false" closable="false">
            <p:graphicImage value="/design/ajaxloadingbar.gif" />
        </p:dialog>

        <h:form>

            <p:panel id="panel" header="Ajax Status">

                <p:messages />

                <h:panelGrid columns="3" cellpadding="5">
                    <h:outputLabel for="firstname" value="Firstname: *" />
                    <p:inputText id="firstname"
                                 value="#{personBean.firstname}"
                                 required="true" label="Firstname">
                        <f:validateLength minimum="2" />
                    </p:inputText>
                    <p:message for="firstname" />

                    <h:outputLabel for="surname" value="Surname: *" />
                    <p:inputText id="surname"
                                 value="#{personBean.surname}"
                                 required="true" label="Surname"/>
                    <p:message for="surname" />

                </h:panelGrid>

                <p:commandButton value="Submit" update="panel"
                                 actionListener="#{personBean.savePerson}" />

            </p:panel>

        </h:form>

    </h:body>
</html>
package br.ag.bean;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

public class PersonBean {

	private String firstname;

	private String surname;

	public String getFirstname() {
		return firstname;
	}
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	public String getSurname() {
		return surname;
	}
	public void setSurname(String surname) {
		this.surname = surname;
	}

	public void savePerson(ActionEvent actionEvent) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + surname + "!"));
	}
}

Meu problema é que estou tentando usar ajax para executar um panel em um sistema que estou fazendo e não consigo, então fui no site do PrimeFaces e achei isso que citei acima, pensei comigo, beleza, problema resolvido, mas como disse não funciona.

Algué sabe me dizer se pode ser alguma configuração ou qualquer outra coisa?

Obrigado.

2 Respostas

A

Bom, vi o problema, coloquei @ManagedBean na classe PersonBean, não sei porque não tinha lá no código do primefaces, mas funcionou.

L

Olá amigo,

o meu está funcionado direitihno, porém gostaria de chamar outro ajax status por cima e um dialog.

Será que tem como??

Criado 27 de maio de 2011
Ultima resposta 14 de fev. de 2013
Respostas 2
Participantes 2