Passando parametro

1 resposta
Deluxe

galera no meu dataTable tem o botao editar
nahora q eu cliko queria jogar os dados pra outra tela…

<rich:dataTable align="center" width="300" id="col" rows="20" columnClasses="col" value="#{list}" var="serv">  
           <f:facet name="header">  
               <rich:columnGroup>  
                   <h:column>  
                       <h:outputText styleClass="headerText" value="NOME" />  
                   </h:column>  
                   <h:column>  
                       <h:outputText styleClass="headerText" value="CPF" />  
                   </h:column>  
               </rich:columnGroup>  
           </f:facet>  
     
           <h:column>  
               <h:outputText value="#{serv.nomeServidor}" /> 
           </h:column>  
           <h:column>  
               <h:outputText value="#{serv.cpfServidor}" />  
           </h:column>  
           
           
 
           <h:column>
           
           <ui:define name="buttonsBar">
				<h:commandButton value=" - " action="#{bean.alterarServidor}" >
					<f:param name="id" value="#{serv.ID_SERVIDOR}" />
 				</h:commandButton>
			</ui:define>
           </h:column>
           
       </rich:dataTable>

mais nao funciona…
do outro lado so chega nulo…
alguem sabe como eu faco?

1 Resposta

andretads

depende do escopo do seu managed bean

se ele for sessao fica facil

eu fasso assim…

public class MeuMB {
private DataModel model = null;
pribate Object objeto = null;
//gets e sets

public DataModel getListaDeObjetos() {
this.model = new ListDataModel(meuDao.listaObjetos);
return this.model;
}

public String editar() {
this.objeto = (Object) this.model.getRowData();
return "paginaDeEdicao";
}

}

minha página

<h:dataTable id="tabela" var="i" value="#{MeuMB}">
<h:column>
<h:commandButton action="#{MeuMB.acao}" value="Editar" />
</h:column>
</h:dataTable>

Se teu mb for request no metodo editar você vai ter que recuperar teu objeto do model e armazená-lo na sessão

public String editar() {
this.objeto = (Object) this.model.getRowData();
getSession.setAttribute("objeto", this.objeto);
return "paginaDeEdicao";
}

mas como acredito que seu mb seja sessao…

na pagina de edição para pegar o objeto fica assim

mb escopo sessao<h:inputText id="atributo" value="#{MeuMB.objeto.atributo}" />

mb escopo request<h:inputText id="atributo" value="#{objeto.atributo}" />

Espero ter ajudado.

Criado 19 de agosto de 2008
Ultima resposta 19 de ago. de 2008
Respostas 1
Participantes 2