Boa noite…
Andei pesquisando mais como eu faço para que um <p:commandButton> passe um determinado parametro para uma classe
suponha que eu ja tenho pego esse parametro (Que é um list) e já esteja trabalhando com ele na sessão… gostaria de passar para outra classe… por exemplo
Aonde eu pego esse parametro e exibo ele em um dataList
<p:dataTable id="DTVariaveis" var="DTVvalor" value="#{ConverteModVariaveis.lista}">
<p:column>
<f:facet name="header">
<h:outputText value="Posição" />
</f:facet>
<h:outputText value="#{DTVvalor.posicao}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Média" />
</f:facet>
<h:outputText value="#{DTVvalor.media}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Amplitude" />
</f:facet>
<h:outputText value="#{DTVvalor.variabilidade}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{DTVvalor.controleExclusao}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
</p:dataTable>
Gosta gostaria de passar essa lista para a seguinte classe
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import modelo.Variaveis;
import org.primefaces.context.RequestContext;
@ManagedBean (name = "Teste")
@SessionScoped
public class Teste {
private List<Variaveis> lista = new ArrayList<Variaveis>();
private Variaveis aux = new Variaveis();
public Teste() {
}
public List<Variaveis> getLista() {
return lista;
}
public void setLista(List<Variaveis> lista) {
this.lista = lista;
testaLista();
}
public void testaLista(){
for(int i=0; i<lista.size();i++)
{
aux = lista.get(i);
System.out.println(aux.getPosicao());
System.out.println(aux.getMedia());
System.out.println(aux.getVariabilidade());
}
}
public void testaRecebeLista(ActionEvent event){
List<Variaveis> listaV = new ArrayList<Variaveis>();
RequestContext contexto = RequestContext.getCurrentInstance();
contexto.getCurrentInstance();
for(int i=0; i<listaV.size();i++)
{
aux = listaV.get(i);
System.out.println(aux.getPosicao());
System.out.println(aux.getMedia());
System.out.println(aux.getVariabilidade());
}
}
}
Eu já tentei de várias formas… mais não consigo passar ele para a classe…
<p:commandButton value="Envia Lista" onclick="#{Teste.lista}">
<f:param value="#{DTVvalor}" />
</p:commandButton>
E de brinde para entender um pouco vem a classe que cria a lista… mais creio que não seja necessário conhece-la
package controle;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import modelo.Variaveis;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
/**
*
* @author Ulisses
*/
@ManagedBean(name = "ConverteModVariaveis")
@SessionScoped
public class ConverteModVariaveis implements Serializable{
public List<Variaveis> listaVariaveis = new ArrayList<Variaveis>();
int linha;
double maximo, minimo, media,amplitude;
public List<Variaveis> getLista() {
return listaVariaveis;
}
public void setLista(List<Variaveis> list) {
this.listaVariaveis = list;
}
public void CriaLista(FileUploadEvent event) throws IOException {
FacesMessage msg = new FacesMessage("Arquivo", event.getFile().getFileName() + " foi enviado com sucesso.");
FacesContext.getCurrentInstance().addMessage(null, msg);
UploadedFile arquivo = event.getFile();
//Recebe o arquivo para leitura
HSSFWorkbook wb = new HSSFWorkbook(arquivo.getInputstream());
//Retira os dados da 1º Planilha
HSSFSheet sh = wb.getSheetAt(0);
//Percorre linha a linha até o final da planilha
for (linha = sh.getFirstRowNum(); linha <= sh.getLastRowNum(); linha++) {
//Variaveis de Controle
maximo = 0x0.0000000000001P-1022;
minimo = 0x1.fffffffffffffP+1023;
media = 0;
amplitude = 0;
//Pega o conteudo da linha
HSSFRow clinha = sh.getRow(linha);
//Percorre a linha até que a ultima célula vazia
for (int coluna = clinha.getFirstCellNum(); coluna < clinha.getLastCellNum(); coluna++)
{
HSSFCell celula = clinha.getCell(coluna);
//Incrementa o valor da média de cada célula
media = media + celula.getNumericCellValue();
//Pega o maior valor da linha
if (celula.getNumericCellValue() > maximo)
{
maximo = celula.getNumericCellValue();
}
//Pega o menor valor da linha
if (celula.getNumericCellValue() < minimo)
{
minimo = celula.getNumericCellValue();
}
}
//Calcula o resultados para passar pro ArrayList
media = media /clinha.getLastCellNum();
amplitude = maximo - minimo;
//Adicione os calculos da linha no tipo Variaveis
listaVariaveis.add(new Variaveis(linha+1, media, amplitude,true));
}
}
}