Duvida com Primefaces

Estou iniciando em JSF e Primefaces, mas estou com alguns problemas, Fiz um cadastro de Usuarios e de Empresas, criei uma pagina que lista todos os usuarios e com opções de incluir, alterar, excluir, etc… todas as requisições passam pelo controller, criei um UsuariosController para isso, mas não consigo ir para a pagina de Empresas, ou seja, não consigo chamar o EmpresasController, usando um link ou botão assim:

<p:commandLink value="Nova Empresa" actionListener="#{empresasController.verEmpresa()}"/>

Mas se eu executar a pagina que lista as empresas ela funciona perfeitamente.
A minha duvida é se eu teria que criar uma classe Unica para ser o Controller e não uma para cada entidade do sistema.
O que eu estou fazendo de errado?

faz assim:

<p:commandLink value="Nova Empresa" action="#{empresasController.verEmpresa()}" ajax="false" />  

e no MB

public String verEmpresa()
{
   return "nomeDaPaginaEmpresa";
}

Este POST tem mais detalhes sobre navegação JSF2.
Uma particularidade do Primefaces é que a navegação tem que ser feita com ajax=“false” (conforme FAQ do PM)

jokacwb, obrigado pela ajuda, mas ainda continuo com problemas, coloquei o ajax como false e agora a pagina só da um refresh mas não muda pra pagina solicitada.

Post o código do empresasController pra facilitar.

EmpresasController


package controller;

import dao.DaoEmpresas;
import entidade.Empresas;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

@ManagedBean
@SessionScoped
public class EmpresasController {
    
    private Empresas empresas;
    private DataModel listaEmpresas;
    
    public DataModel getListarEmpresa(){
        List<Empresas> lista = new DaoEmpresas().listaTodos();
        listaEmpresas = new ListDataModel(lista);
        return listaEmpresas;
    }
    
    public Empresas getEmpresas(){
        return empresas;
    }
    
    public void setEmpresas(Empresas empresas){
        this.empresas = empresas;
    }
    
    public String verEmpresa(){
        return "empresa";
    }
    
    public String prepararAdicionarEmpresa(){
        empresas = new Empresas();
        return "empresa";
    }
    
    public String prepararAlterarEmpresas(){
        empresas = (Empresas)(listaEmpresas.getRowData());
        return "empresa";
    }
    
    public String excluirEmpresas(){
        Empresas empresaTemp = (Empresas)(listaEmpresas.getRowData());
        DaoEmpresas dao = new DaoEmpresas();
        dao.excluir(empresaTemp);
        return "empresa";
    }
    
    public String salvarEmpresas(){
        DaoEmpresas dao = new DaoEmpresas();
        dao.salvar(empresas);
        return "empresa";
    }
    
    public String alterarEmpresas(){
        DaoEmpresas dao = new DaoEmpresas();
        dao.alterar(empresas);
        return "empresa";
    }
}

Ai eu estou chamando o link assim:

<p:commandLink value="Empresa" actionListener="#{empresasController.verEmpresa()}" ajax="false"/>

Como se chama a página que quer abrir?

empresa.xhtml

vc tem que usar o actio e não actionlistener
assim:

<p:commandLink value="Empresa" action="#{empresasController.verEmpresa()}" ajax="false"/> 

De uma lida Neste Post para saber mais sobre action e actionlistener

se quiser apenas trocar de página (navegar) pode inclusive chamar a pagina direto no
commandlink:

<p:commandLink value="Empresa" action="empresa" ajax="false"/> 

onde “empresa” representa o nome da pagina que vc quer ir sem a extensão que por padrão
ele assume a mesma extensão da pagina que originou a chamada

jokacwb agora funcionou, muito obrigado mesmo. Vou dar uma olhada no post sobre action.