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’
[code]<?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>
[/code]
MEU MANAGED BEAN
[code]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 bean = new ArrayList();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 getBean() {
return bean;
}public void setBean(List bean) {
this.bean = bean;
}
}
[/code]
Bom,
é isso pessoal, muito obrigado pela atenção
Leonardo De Bona