Boa tarde pessoal. Bom, estou fazendo um sistema para faculdade, e estou usando jsf com prime faces, até ai tudo bem, fiz toda as telas bonitinhas … ok, porém, estou tentando fazer um wizard do primefaces para cadastrar meu cliente. A tela renderiza certinho, porém, após escolher ( ou não) meu tipo de cliente (fisico ou juridico), não consigo ir para a proxima aba do cadastro. Clico no botao “proximo”, porém nao acontece nada. Testei nas versoes 3.4 e 3.4.1
Segue os codigos:
Tela do cadastro
<ui:composition template="../comum/template.xhtml"
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.org/ui">
<ui:define name="conteudo">
<div id="conteudo">
<h:form>
<p:wizard widgetVar="wiz" flowListener="#{wizard.onFlowProcess}"
nextLabel="Proximo" backLabel="Voltar" style="width: 600px;">
<!-- Painel para definir tipo de cadastro -->
<p:tab id="tipoTab" title="Tipo">
<p:panel header="Tipo de Cadastro">
<h:messages />
<h:panelGrid columns="2">
<h:outputText value="Tipo de Cadastro: *" />
<p:selectOneRadio id="radioOpcoes" value="#{wizard.cliente.tipo}">
<f:selectItem itemLabel="Cliente Fisico" itemValue="1" /><br />
<f:selectItem itemLabel="Cliente Juridico" itemValue="2" />
</p:selectOneRadio>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="dadosTab" title="Dados">
<p:panel header="Tipo de Cadastro Fisico">
<h:messages errorClass="error"/>
<h:panelGrid columns="2">
<h:outputText value="Nome : *" />
<p:inputText value="#{wizard.cliente.clienteFisico.nome}" />
<h:outputText value="RG : *" />
<p:inputText value="#{wizard.cliente.clienteFisico.rg}" />
<h:outputText value="CPF : *" />
<p:inputText value="#{wizard.cliente.clienteFisico.cpf}" />
<h:outputText value="Data Nascimento : *" />
<p:calendar value="#{wizard.cliente.clienteFisico.dataNascimento}" showButtonPanel="true"/>
</h:panelGrid>
</p:panel>
</p:tab>
</p:wizard>
</h:form>
</div>
</ui:define>
</ui:composition>
Bean do wizard:
package br.com.beans;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.event.FlowEvent;
@ManagedBean
public class Wizard {
private Cliente cliente = new Cliente();
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public void save(ActionEvent actionEvent) {
//Persist user
FacesMessage msg = new FacesMessage("Successful", "Welcome tipo :" + cliente.getTipo());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public String onFlowProcess(FlowEvent event) {
System.out.println("Current wizard step:" + event.getOldStep());
System.out.println("Next step:" + event.getNewStep());
return event.getNewStep();
}
}
Pagina de template que estou usando:
<?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://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.org/ui">
<h:head>
<ui:insert name="head">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<h:outputStylesheet library="css" name="estilo.css" />
<title>Sistemas de Informação, 6º Período - Sistema de Cadastro e Vendas</title>
</ui:insert>
</h:head>
<h:body>
<ui:insert name="topo">
<div id="topo">
<h1>Sistema de Cadastro e Vendas</h1>
</div>
</ui:insert>
<ui:insert name="menu">
<div id="menu">
<h:form>
<p:slideMenu style="width:180px;height:170px;">
<p:menuitem value="Pagina Inicial" icon="ui-icon-home" />
<p:separator />
<p:submenu label="Produtos" icon="ui-icon-cart" >
<p:menuitem value="Cadastrar" icon="ui-icon-circle-plus" />
<p:menuitem value="Consultar" icon="ui-icon-search" />
<p:menuitem value="Editar" icon="ui-icon-pencil" />
</p:submenu>
<p:separator />
<p:submenu label="Cliente" icon="ui-icon-person" >
<p:menuitem value="Cadastrar" action="#{forward.forwardCadastrarCliente()}" icon="ui-icon-circle-plus" />
<p:menuitem value="Consultar" icon="ui-icon-search" />
<p:menuitem value="Editar" icon="ui-icon-pencil" />
</p:submenu>
<p:separator />
<p:submenu label="Vendas" icon="ui-icon-circle-triangle-e" >
<p:menuitem value="Cadastrar" icon="ui-icon-circle-plus" />
<p:menuitem value="Consultar" icon="ui-icon-search" />
<p:menuitem value="Editar" icon="ui-icon-pencil" />
</p:submenu>
<p:separator />
<p:submenu label="Sobre" icon="ui-icon-lightbulb">
<p:menuitem value="O Grupo" icon="ui-icon-flag" />
<p:menuitem value="Contato" icon="ui-icon-mail-closed" />
</p:submenu>
</p:slideMenu>
</h:form>
</div>
</ui:insert>
<ui:insert name="conteudo">
</ui:insert>
<ui:insert name="rodape">
<div id="rodape">
<h5>Sistemas de Informação, 6º Período - Sistema de Cadastro e Vendas</h5>
</div>
</ui:insert>
</h:body>
</html>
Meu web.xml
<?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>Production</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>home</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>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- Mapeamento de pagina de erro -->
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.xhtml</location>
</error-page>
</web-app>
Obrigado