Pessoal eu fiz um método que tinha como objetivo contar o numero de acessos na pagina, o metodo funciona mas está sendo chamado duas vezes em um só acesso, olhem abaixo o código:
@ManagedBean
@SessionScoped
public class RatingView implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer rating3;
private int numAcessos;
public int getNumAcessos() {
System.out.println("Antes do Incremento" + numAcessos);
++numAcessos;
System.out.println("Depois do Incremento" + numAcessos);
return numAcessos;
}
public void setNumAcessos(Integer numAcessos) {
this.numAcessos = numAcessos;
}
Este é o XHTML da pagina que é chamada:
<?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:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="_template.xhtml">
<ui:define name="Avaliação">
<p:outputPanel>Livro</p:outputPanel>
</ui:define>
<ui:define name="conteudo">
<h:form>
<p:growl id="messages" showDetail="true" />
<h:panelGrid columns="2" cellpadding="5">
<h:outputText value="Avaliação:" />
<p:rating value="#{ratingView.rating3}">
<p:ajax event="rate" listener="#{ratingView.onrate}"
update="messages" />
<p:ajax event="cancel" listener="#{ratingView.oncancel}"
update="messages" />
</p:rating>
</h:panelGrid>
//Coloquei o metodo para ser chamado neste botão abaixo
//apenas para visualizar como se comporta a função
<p:commandButton value="#{ratingView.numAcessos}"
oncomplete="PF('dlg').show()"/>
</h:form>
</ui:define>
</ui:composition>
</html>
Estou desconfiando que ao carregar o botão o metodo está sendo chamado duas vezes, o que acham ???