Dúvida como passar um objeto utilizando PRIMEFACES 3.0

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));
        }
    
    }
}

Esse post aqui deve te ajudar: JSF Parametros por Get Request RESTFull.

Já havia lido esse post, mais não ajudou muito não… ainda continuo sem saber como passar a lista para alguma determinada classe, e essa classe receber essa lista… recuperar um parâmetro eu consigo, só não consigo passar a lista e fazer minha classe pegar essa lista.