Estou tendo o seguinte problema com minha aplicação jsf: o comandlink não executa a action, só funciona se substituir o commandlink por commandbutton.
Alguém tem uma idéia do que pode ser?
Desde já agradeço a ajuda. 
commandLink não executa action
5 Respostas
Aparece alguma mensagem no log do server?
R
Posta teu codigo
segue o código referente ao meu commnadlink:
meu managed bean (apenas o método logout):
meu faces-config:
<h:commandLink id="linkSair" action="#{loginBean.logout}" styleClass="linkSair" value="sair"/>
public String logout() throws IOException {
//FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse) ectx.getResponse();
//HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
HttpSession session = (HttpSession)ectx.getSession(false);
session.invalidate();
response.sendRedirect("index.jsp");
return null;
Não dá mensagem de erro, simplesmente não executa, é como se o link estivesse morto.
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<!-- LOGIN / LOGOUT -->
<managed-bean>
<managed-bean-name>loginBean</managed-bean-name>
<managed-bean-class>controle.LoginBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-action>#{loginBean.doLogin}</from-action>
<from-outcome>true</from-outcome>
<to-view-id>/jsp/login/index_mod.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{loginBean.doLogin}</from-action>
<from-outcome>false</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/index_mod.jsp</from-view-id>
<navigation-case>
<from-outcome>logout</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!-- CADASTRO DO CENSITARIO -->
<managed-bean>
<managed-bean-name>censitarioListBean</managed-bean-name>
<managed-bean-class>censitario.CensitarioListBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>censitarioFormBean</managed-bean-name>
<managed-bean-class>censitario.CensitarioFormBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/censitarioForm.jsp</from-view-id>
<navigation-case>
<from-outcome>sucessoCadastro</from-outcome>
<to-view-id>/censitarioForm.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>sucessoAContratar</from-outcome>
<to-view-id>/contratacao.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>#{censitarioListBean.buscar}</from-view-id>
<navigation-case>
<from-outcome>formCadastroCensitario</from-outcome>
<to-view-id>/jsp/cadastro/censitarioForm.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!-- CONTRATACAO -->
<managed-bean>
<managed-bean-name>contratacaoBean</managed-bean-name>
<managed-bean-class>censitario.ContratacaoBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<!-- DESLIGAMENTO -->
<managed-bean>
<managed-bean-name>desligamentoListBean</managed-bean-name>
<managed-bean-class>lancamentos.DesligamentoListBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>desligamentoFormBean</managed-bean-name>
<managed-bean-class>lancamentos.DesligamentoFormBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/desligamentoForm.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/jsp/lancamentos/desligamentoForm.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/censitario.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/desligamento.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>iniciar</from-outcome>
<to-view-id>/index_mod.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!-- BLOQUEIOS FP -->
<managed-bean>
<managed-bean-name>bloqueiosFPBean</managed-bean-name>
<managed-bean-class>calculoFP.BloqueiosFPBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<!-- CALCULO FP -->
<managed-bean>
<managed-bean-name>calculoFPBean</managed-bean-name>
<managed-bean-class>calculoFP.CalculoFPBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<navigation-case>
<from-outcome>calcularFP</from-outcome>
<to-view-id>/jsp/services/calculoFP.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>fecharFP</from-outcome>
<to-view-id>/jsp/services/fechaFP.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>execFPCancel</from-outcome>
<to-view-id>/jsp/calculoFP/execCalc.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>execFPRetornar</from-outcome>
<to-view-id>/jsp/calculoFP/execCalc.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!--
<managed-bean>
<managed-bean-name>cadastroBean</managed-bean-name>
<managed-bean-class>censitario.CadastroUsuarioBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>LotacaoBean</managed-bean-name>
<managed-bean-class>censi.LotacaoBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-->
</faces-config>
R
estranho,coloca o código completo da página
segue o código completo da página:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<h:form id="menuPrincipalForm" prependId="false">
<div id="menuPrincipal">
<div id="smoothmenu1" class="ddsmoothmenu">
<ul>
<li>
<a href="#">Gerencial</a>
<ul>
<li><a href="#">Cadastro</a>
<ul>
<li><a href="<%=response.encodeURL("baseSetorPag.do?metodo=iniciar")%>">Base de Setor de Pagamento</a></li>
<li><a href="<%=response.encodeURL("cadLotacao.do?metodo=iniciar")%>">Lotação</a></li>
<li><a href="<%=response.encodeURL("cadPerfil.do?metodo=iniciar")%>">Perfis</a></li>
<li><a href="<%=response.encodeURL("cadUsuario.do?metodo=iniciar")%>">Usuário</a></li>
</ul>
</li>
<li><a href="#">Tabelas</a>
<ul>
<li><a href="<%=response.encodeURL("cadBanco.do?metodo=iniciar&acao=iniciar")%>">Banco</a></li>
<li><a href="<%=response.encodeURL("cadAgencia.do?metodo=iniciar&acao=iniciar")%>">Agência Bancária</a></li>
<li><a href="<%=response.encodeURL("calendario.do?metodo=iniciar")%>">Calendário</a></li>
<li><a href="<%=response.encodeURL("tabClasContabil.do?metodo=iniciar&acao=iniciar")%>">Classificação Contábil</a></li>
<li><a href="<%=response.encodeURL("tabEncInss.do?metodo=iniciar")%>">INSS</a></li>
<li><a href="<%=response.encodeURL("tabEncIrrf.do?metodo=iniciar")%>">IRRF</a></li>
<li><a href="<%=response.encodeURL("cadRubrica.do?metodo=iniciar")%>">Rubricas</a></li>
<li><a href="<%=response.encodeURL("tabEncSf.do?metodo=iniciar")%>">Salário Família</a></li>
<li><a href="<%=response.encodeURL("tabSalMin.do?metodo=iniciar")%>">Salário Mínimo</a></li>
<li><a href="<%=response.encodeURL("tarifaAlim.do?metodo=iniciar")%>">Tarifa de Alimentação</a></li>
<li><a href="<%=response.encodeURL("tarifaTransp.do?metodo=iniciar")%>">Tarifa de Transporte</a></li>
<li><a href="<%=response.encodeURL("taxaSetorPag.do?metodo=iniciar")%>">Taxa Setor Pagamento</a></li>
<li><a href="<%=response.encodeURL("exibPerfil.do?metodo=iniciar")%>">Perfil de Usuário</a></li>
<li><a href="<%=request.getContextPath()%>/jsp/calculoFP/bloqueiosFP.jsf">Bloqueios de FP</a></li>
</ul>
</li>
<li><a href="#">Relatórios</a>
<ul>
<li><a href="<%=response.encodeURL("pasep.do?metodo=importar")%>">PASEP</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('GeraArqLotFuncao');">Gera Arquivo Lotação-Função</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioContratadosExcluidosComFPExtra');">Contratados Excluídos com FP-Extra</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioFpMenEmExec');">FP's Mensalista em Execução</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioFpRecEmExec');">FP's Recenseador em Execução</a></li>
<li><a href="<%=response.encodeURL("totaisFp.do?metodo=iniciar")%>">Totais de FP</a></li>
<li><a href="<%=response.encodeURL("RelatorioAdiantFpDiversos.do?metodo=iniciar")%>">Totais de Diverso de Setor</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">Folha de Pagamento</a>
<ul>
<li><a href="#">Censitário</a>
<ul>
<li><a href="<%=request.getContextPath()%>/jsp/cadastro/censitarioList.jsf">Cadastro de Mensalista</a></li>
<li><a href="<%=response.encodeURL("contratacao.do?metodo=iniciar&situacao=-1&cadastro=p_CadContratacao")%>">Contratação</a></li>
<li><a href="<%=response.encodeURL("controleSetor.do?metodo=iniciar&listar=np")%>">Controle de Setor</a></li>
<li><a href="<%=response.encodeURL("gerarqCadConDes.do?metodo=iniciar")%>">Geração de Arquivo Cad/Con/Des</a></li>
<li><a href="<%=response.encodeURL("pensionista.do?metodo=iniciar&situacao=0&cadastro=p_CadPensionista")%>">Pensionista</a></li>
<li><a href="<%=response.encodeURL("SISAC.do?metodo=iniciar")%>">SISAC</a></li>
<li><a href="<%=response.encodeURL("Top.do?metodo=iniciar")%>">TOP 10</a></li>
</ul>
</li>
<li>
<a href="#">Folha de Pagamento</a>
<ul>
<li><a href="<%=request.getContextPath()%>/jsp/calculoFP/execCalc.jsf">Acesso a Folhas de Pagamento</a></li>
<li><a href="<%=response.encodeURL("consultaFpConf.do?metodo=iniciar")%>">Consulta Folha de Conferência PM</a></li>
<li>
<a href="#">Consulta Informações de Pagamento</a>
<ul>
<li><a href="<%=response.encodeURL("consultaInfoPag.do?metodo=iniciar&acao=iniciar")%>">Consulta por Matrícula</a></li>
<li><a href="<%=response.encodeURL("consultaInfoPag.do?metodo=consultar&acao=porSetor")%>">Consulta por Setor</a></li>
<li><a href="<%=response.encodeURL("controleSetor.do?metodo=iniciar&tipo=consulta")%>">Controle FP's por Setor</a></li>
<li><a href="<%=response.encodeURL("consultaInfoPag.do?metodo=consultar&acao=matrpagsuspenso")%>">Matrícula com Pgto. Suspenso - Rub.90</a></li>
<li><a href="<%=response.encodeURL("consultaInfoPag.do?metodo=consultar&acao=contrativose90e99")%>">Contrat. Ativos com Deslig. e Pgto. Suspenso</a></li>
<li><a href="<%=response.encodeURL("consultaInfoPag.do?metodo=consultar&acao=contrativosemdatas")%>">Contrat. Ativos em Datas Específicas</a></li>
</ul>
</li>
<li><a href="<%=response.encodeURL("dirfrais.do?metodo=iniciar&acao=iniciar")%>">DIRF/RAIS-SAPC</a></li>
<li><a href="<%=response.encodeURL("gfipManual.do?metodo=iniciar&acao=iniciar")%>">GFIP-Manual</a></li>
<li><a href="<%=response.encodeURL("gfip.do?metodo=iniciar&acao=iniciar")%>">GFIP-SAPC</a></li>
<li><a href="<%=response.encodeURL("pagExtraIniciar.do?metodo=iniciar&acao=ue")%>">Pagamento Extra de Contratados</a></li>
<li><a href="<%=response.encodeURL("pagExtraIniciarTreinamento.do?metodo=iniciar&acao=ue&acao2=treinamento")%>">Pagamento Extra de Treinamento</a></li>
</ul>
</li>
<li>
<a href="#">Pagamento Extra</a>
<ul>
<li><a href="<%=response.encodeURL("gerarFPContratados.do?metodo=iniciar&acao=gerencial")%>">Gerar FP de Contratados</a></li>
<li><a href="<%=response.encodeURL("gerarFPTreinamento.do?metodo=iniciar&acao=gerencial&acao2=treinamento")%>">Gerar FP de Treinamento</a></li>
</ul>
</li>
<li>
<a href="#">Associação Taxa</a>
<ul>
<li><a href="<%=response.encodeURL("assocSetorTaxa.do?metodo=iniciar&acao=setor")%>">Setor X Taxa - Código Setor</a></li>
<!--
<li><a href="<%=response.encodeURL("assocSetorTaxa.do?metodo=iniciar&acao=munic")%>">Setor X Taxa - Município</a></li>
<li><a href="<%=response.encodeURL("assocSetorTaxa.do?metodo=associar&tipoLocal=UF")%>">Setor X Taxa - UF</a></li>
-->
</ul>
</li>
<li>
<a href="#">Lançamentos</a>
<ul>
<li><a href="<%=response.encodeURL("cadLancAcertoDeslig.do?metodo=iniciar&acao=mensalista")%>">Acerto de Rescisão</a></li>
<li><a href="<%=response.encodeURL("cadLancRubAcs.do?metodo=iniciar&acao=mensalista")%>">Acerto de Setor</a></li>
<li><a href="<%=response.encodeURL("cadLancAfast.do?metodo=iniciar&acao=mensalista")%>">Afastamento/Retorno</a></li>
<li><a href="<%=response.encodeURL("cadLancDeslig.do?metodo=iniciar&acao=mensalista")%>">Desligamento</a></li>
<li><a href="<%=response.encodeURL("cadLancDivSetor.do?metodo=iniciar")%>">Diversos de Setor</a></li>
<li><a href="<%=response.encodeURL("cadLancFaltaImp.do?metodo=iniciar&acao=mensalista")%>">Faltas/Impontualidade</a></li>
<li><a href="<%=response.encodeURL("cadLancFichaFin.do?metodo=iniciar&acao=mensalista")%>">Ficha Financeira</a></li>
<li><a href="<%=response.encodeURL("cadLancRubrica.do?metodo=iniciar&acao=mensalista")%>">Rubricas</a></li>
</ul>
</li>
<li>
<a href="#">Consulta</a>
<ul>
<li><a href="<%=response.encodeURL("conTabEncInss.do?metodo=iniciar")%>">INSS</a></li>
<li><a href="<%=response.encodeURL("conTabEncIrrf.do?metodo=iniciar")%>">IRRF</a></li>
<li><a href="<%=response.encodeURL("conCadRubrica.do?metodo=iniciar")%>">Rubricas</a></li>
<li><a href="<%=response.encodeURL("conTabEncSf.do?metodo=iniciar")%>">Salário Família</a></li>
<li><a href="<%=response.encodeURL("conTarifaAlim.do?metodo=iniciar")%>">Tarifa de Alimentação</a></li>
<li><a href="<%=response.encodeURL("conTarifaTransp.do?metodo=iniciar")%>">Tarifa de Transporte</a></li>
<li><a href="<%=response.encodeURL("conTaxaSetorPag.do?metodo=iniciar")%>">Taxa Setor Pagamento</a></li>
</ul>
</li>
<li>
<a href="#">Relatórios</a>
<ul>
<li><a href="#">Declaração Anual de Rendimentos</a>
<ul>
<li><a href="<%=response.encodeURL("decCensitarios.do?metodo=iniciar&acao=mensalista")%>">Censitários</a></li>
<li><a href="<%=response.encodeURL("decMunicipios.do?metodo=iniciar&acao=mensalista")%>">Municípios</a></li>
<li><a href="<%=response.encodeURL("decAgencias.do?metodo=iniciar&acao=mensalista")%>">Subáreas</a></li>
<li><a href="<%=response.encodeURL("decUF.do?metodo=iniciar&acao=mensalista")%>">UF's</a></li>
</ul>
</li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioAcompDoCustoDaProducaoColeta');">Custo de Produção da Coleta</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioAdiantamentoNaoDescontadoPorUf');">Adiantamentos nãoo Descontados por UF</a></li>
<li><a href="<%=response.encodeURL("relatorioCensitario.do?metodo=exibeFormulario")%>">Associação de Setores Por UF</a></li>
<li>
<a href="#">Rubricas</a>
<ul>
<li><a href="<%=response.encodeURL("rubricasMovimento.do?metodo=iniciar")%>">Rubricas de Movimento</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioLancRubMovimentoDivSetor');">Rubricas de Movimento de Setor</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioLancRubFixa');">Rubricas Fixas</a></li>
</ul>
</li>
<li>
<a href="#">Contratados</a>
<ul>
<li><a href="<%=response.encodeURL("relatorioTotalUf.do?metodo=exibeFormulario")%>">Total de Contratados</a></li>
<li><a href="<%=response.encodeURL("relatorioTotalContratadosUf.do?metodo=execute")%>">Total de Ativos</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioAssocDeSetorPorUf');">Censitários</a></li>
<li><a href="<%=response.encodeURL("relatorioContratado.do?metodo=exibeFormulario")%>">Contratados</a></li>
</ul>
</li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioMensalistasEmFp');">Mensalistas em FP</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioMensalDePagExtra');">Pagamentos Extras</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioTaxaSetorNaoAssoc');">Setores não Associados</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioSetoresPagosPorUf');">Setores Pagos Por UF</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioTaxaSetorAssoc');">Taxa de Setores Associados</a></li>
<li><a href="javascript:void(0);" onclick="mostraJanela('relatorioTotalSetoresPagosPorUf');">Total de Setores Pagos Por UF</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">Financeiro</a>
<ul>
<li>
<a href="#">Gestão de FP</a>
<ul>
<li><a href="<%=response.encodeURL("geraListaPag.do?metodo=iniciar")%>">Consolidar FP</a></li>
<li><a href="<%=response.encodeURL("geraArqPagDeLista.do?metodo=iniciar")%>">Gerar Arquivo SERPRO (LC)</a></li>
<li><a href="<%=response.encodeURL("infoPagLista.do?metodo=iniciar")%>">Informar Pagamento de FP Consolidada</a></li>
<li><a href="<%=response.encodeURL("acessoPagExtra.do?metodo=iniciar&acao=financeiro")%>">Acesso Pagamentos Extras</a></li>
</ul>
</li>
<li>
<a href="#">Cadastro</a>
<ul>
<li><a href="<%=response.encodeURL("../cadBanco.do?metodo=iniciar&acao=iniciar")%>">Bancos</a></li>
<li><a href="<%=response.encodeURL("../cadAgencia.do?metodo=iniciar&acao=iniciar")%>">Agências Bancárias</a></li>
<li><a href="<%=response.encodeURL("../cadDadosBancarios.do?metodo=iniciar&acao=inicio")%>">Censitário - Domicílio Bancário</a></li>
</ul>
</li>
<li>
<a href="#">Relatórios</a>
<ul>
<li>
<a href="#">DDP's Diários</a>
<ul>
<li><a href="<%=response.encodeURL("../contabilPag.do?metodo=iniciar")%>">Relatório DDP</a></li>
<li><a href="<%=response.encodeURL("")%>">Relatório Pensionista</a></li>
</ul>
</li>
<li>
<a href="#">DDP's Mensais</a>
<ul>
<li><a href="<%=response.encodeURL("../contabilMes.do?metodo=iniciar")%>">Relatório mês</a></li>
<li><a href="<%=response.encodeURL("")%>">Relatório recolhimento INSS Consolidado</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">Outros</a>
<ul>
<li><a href="#">Gerar Arquivo Serpro(CR)</a></li>
<li><a href="#" onclick="carregar();">Gerar Arquivo de Cadastro</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="sair">
<h:commandButton id="linkSair" action="#{loginBean.logout}" styleClass="linkSair" value="sair"/>
</div>
</h:form>
Criado 25 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 5
Participantes 3
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Desmistificando WebAssembly: Alta performance,... Por Raphael Amorim — Casa do Codigo