Boa tarde a todos,
estou desenvolvimento uma aplicação utlizando jsf, richfaces e facelets...
Tenho uma página bastante simples que consiste em dois campos e um botao...
ao clicar no botao é direcionado para um método do meu managedbean que busca alguns dados do banco e renderiza na tela uma
tabela e outro botao...
o problema é que este botao nao funciona a action...Nao ocorre nenhum erro, simplesmente é como se a action nao existisse...
já tentei colocar o rendered dentro de um painel e o meu botao dentro deste painel mas o problema continua...
segue o codigo da pagina
O.B.S - o codigo em destaque é o botao 'problematico'
<?xml version="1.0" encoding="UTF-8" ?>
<f:view xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<html>
<head>
<title>Atualiza Equipamento Corporate</title>
</head>
<body>
<a4j:form>
<rich:panel>
<h:graphicImage url="/image/logo.GIF" />
</rich:panel>
<rich:panel header="Consultar range">
<h:outputText value="Range Inicial: " />
<h:inputText value="#{config.dataBean.rangeIni}">
<f:validateLength minimum="1" maximum="30" />
</h:inputText>
<h:outputText value="Range Final: " />
<h:inputText value="#{config.dataBean.rangeFim}">
<f:validateLength minimum="1" maximum="30" />
</h:inputText>
<a4j:commandButton value="Consultar!" action="#{config.searchRange}"
reRender="tabelaDadosRange,panelMigrar" />
</rich:panel>
<rich:spacer height="50" />
<h:panelGroup id="panelMigrar">
<h:panelGroup rendered="#{config.mostrarTabela}">
<a4j:commandButton value="Migrar!" action="#{config.updateEquip}" />
</h:panelGroup>
</h:panelGroup>
<h:panelGroup id="tabelaDadosRange">
<h:outputText value="#{config.mensagemRetorno}" />
<h:dataTable value="#{config.bean}" var="item" border="5"
rendered="#{config.mostrarTabela}">
<h:column>
<f:facet name="header">
<h:outputText value="NUMERO_ID" />
</f:facet>
<h:outputText value="#{item.numeroId}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NUMERO" />
</f:facet>
<h:outputText value="#{item.numero}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="EQUIPAMENTO ASSOCIADO" />
</f:facet>
<h:outputText value="#{item.equipamento}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOME CLIENTE" />
</f:facet>
<h:outputText value="TESTE" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="STATUS SISNUM" />
</f:facet>
<h:outputText value="#{item.statusId}" />
</h:column>
</h:dataTable>
</h:panelGroup>
</a4j:form>
</body>
</html>
</f:view>
MEU MANAGED BEAN
package com.gvt.atualiza.managed;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import com.gvt.atualiza.bean.DataBean;
import com.gvt.atualiza.bean.RangeBean;
import com.gvt.atualiza.business.Equipment;
/**
* Managed Bean que controla as informacoes da tela principal da aplicação
*
* @author G0007896
* @since 10/2010
*
* */
public class ConfigForm {
private Logger log = Logger.getLogger(ConfigForm.class);
private DataBean dataBean = new DataBean();
private boolean mostrarTabela = false;
private String mensagemRetorno = "";
private List<RangeBean> bean = new ArrayList<RangeBean>();
public void searchRange() {
try {
if (this.getDataBean().getRangeFim().length() != 10
|| this.getDataBean().getRangeIni().length() != 10) {
mensagemRetorno = "Os campos range inicial e final devem ter 10 caracteres (99-9999 9999)";
} else {
log.info("range: " + this.getDataBean().getRangeIni()
+ " até: " + this.getDataBean().getRangeFim());
bean = Equipment.getInstance().consultRange(
this.getDataBean().getRangeIni(),
this.getDataBean().getRangeFim());
if (bean != null && bean.size() > 0)
mostrarTabela = true;
else
mensagemRetorno = "Nao foram localizados dados na faixa de numeração informada!";
}
} catch (Exception e) {
log.error(e.getMessage(), e);
mensagemRetorno = "Ocorreu um erro na consulta do range informado";
}
}
public void updateEquip(){
log.info("Iniciando processo para atualizar range");
for(RangeBean b : this.getBean()){
System.out.println(b.getNumero());
}
}
public boolean isMostrarTabela() {
return mostrarTabela;
}
public void setMostrarTabela(boolean mostrarTabela) {
this.mostrarTabela = mostrarTabela;
}
public DataBean getDataBean() {
return dataBean;
}
public void setDataBean(DataBean data) {
this.dataBean = data;
}
public String getMensagemRetorno() {
return mensagemRetorno;
}
public void setMensagemRetorno(String mensagemRetorno) {
this.mensagemRetorno = mensagemRetorno;
}
public List<RangeBean> getBean() {
return bean;
}
public void setBean(List<RangeBean> bean) {
this.bean = bean;
}
}
Bom,
é isso pessoal, muito obrigado pela atenção
Leonardo De Bona