JSF, classe de controle - RESOLVIDO

Bom dia galera
sou iniciante em JEE
estou com um pequeno problema, nao sei como
pegar os dados enviados para minha classe pelo método post
por exemplo: no faces config esta uma pagina mapeada com o nome
clienteeditor
minha pagina vai chamar clienteeditor pelo action
e envia um parametro que é o id, atraves do post.
a pagina clienteeditor por sua vez usa uma classe controller
para buscar o cliente no banco de dados atravez do id passado
pela pagina.
minha duvida é, como pegar, com a minha classe controller, esse valor passado?
obrigado!

AEW !!!

Amigo acho melhor voce dar uma estudada na base do jsf …
No seu caso faria um ClienteMB (managed bean) e faria um command action com o action
para essa managed bean e ai sim traria a lista de cliente de volta para a pagina…
esse retorno pode ser feito com navegação no faces-config (load - indo para outra pagina)
ou você pode usar o rich faces e fazer apenas um reRender em um painel com rendered false…

Qualquer duvida poste ai!! ^^

id passado pela pagina:

no action:

[code]
public class ObjetoController{

 private Integer propriedade;

 //get e set: se não sabe o que é pesquise sobre isso.

public String buscar(){
  //aqui é a função que vc chama, via commandButton ou CommandLink para buscar no banco usando o valor informado na página;
 return "paginaResultado"; //depois de buscar retornaria alguma pagina de busca
}

public String consulta(){
return “clienteeditor”;
}

}[/code]

na verdade os dados já estão listados, em uma pagina que filtra
faz tudo bonitinho, o problema é
essa minha lista, os nomes são links, que quando clicados
passam o parâmetro id do cliente o qual ele representa
ai la na parte servidor, queria pegar esse id e buscar o cliente referente
e abrir uma pagina com os respetivos dados, para poderem ser editados

Você esta trabalhando com jsf puro?
se tiver faz como o bobmoe escreveu…
passe como parametro para o managed bean o id faz a busca , retorna o Objeto retorne para outra pagina e mostre os dados como você quiser…
^^

Robsonvnt humm ja desenvolvi o q vc ta kerendo…
no meu caso fiz assim…

no minha JSP tenho um Com uma assim…

        <rich:column>
            <f:facet name="header">
                <h:outputText value="Editar" 
                              style="font-size:8pt; color:#154158; font-family:verdana;"  />
            </f:facet>
            <a4j:commandLink actionListener="#{usuarioHandler.escolheUsuario}" reRender="mainPanel" >
                <f:attribute name="nomeUser" value="#{usuario.nomeUser}"/>
                <f:attribute name="loginUser" value="#{usuario.loginUser}"/> 
                <f:attribute name="senhaUser" value="#{usuario.senhaUser}"/> 
                
                <h:graphicImage value="/imgs/edit.png" styleClass="pic"
                                height="16" width="16" />
                
                <h:outputText value="Editar"  
                              style="font-size:8pt; color:#154158; font-family:verdana;"  />
                <a4j:actionparam id="idParaAlterar" value="#{f.codUser}" />
            </a4j:commandLink> 
        </rich:column>

aonde eu passo um id para meu ManagerBean que ira fazr uma consulta no bd
e retornara ao meu Pojo(bean) os dados referentes ao id q passei…

    public void escolheUsuario(ActionEvent event) throws Exception {
        UIComponent link = event.getComponent();
        UIParameter param = (UIParameter) link.findComponent("idParaAlterar");
        Long id = Long.parseLong((String) param.getValue());
        usuario = (Usuario) GenericDAO.buscaId(Usuario.class, id);
    }

dai eh so da um

        <f:attribute name="nomeUser" value="#{usuario.nomeUser}"/>  
        <f:attribute name="loginUser" value="#{usuario.loginUser}"/>   
        <f:attribute name="senhaUser" value="#{usuario.senhaUser}"/> 

q ele seta nos componentes pra vc…
Espero q te ajude
T+

valeu galera
obrigado pela atenção
ai RobsonFagundes valeu cara é isso mesmo
obrigado!

[quote=Robsonvnt]valeu galera
obrigado pela atenção
ai RobsonFagundes valeu cara é isso mesmo
obrigado![/quote]

valeu Chara qualquer coisa da alo ai blz
Abraço

Oi pessoal estou com um problema no datatable do richfaces esquisito.

Quando tento pegar a linha selecionada sempre fica nulo por que?

Segue o codigo.


package br.com.sigga.mb;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlPanelGroup;
import javax.faces.context.FacesContext;

import org.ajax4jsf.component.html.HtmlAjaxCommandButton;
import org.ajax4jsf.component.html.HtmlAjaxSupport;
import org.richfaces.component.html.HtmlColumn;
import org.richfaces.component.html.HtmlDataTable;


public class DynamicDataTable {
	// Init
	// --------------------------------------------------------------------------------------

	private static List<List<String>> dynamicList; // Simulate fake DB.
	private static String[] dynamicHeaders; // Optional.
	HtmlDataTable dynamicDataTable;
	private List<String> item;
	
	// Actions
	// -----------------------------------------------------------------------------------

	private void loadDynamicList() {

		// Set headers (optional).
		dynamicHeaders = new String[] { "ID", "Name", "Value" };

		// Set rows. This is a stub example, just do your dynamic thing.
		dynamicList = new ArrayList<List<String>>();
		dynamicList.add(Arrays
				.asList(new String[] { "ID1", "Name1", "Value1" }));
		dynamicList.add(Arrays
				.asList(new String[] { "ID2", "Name2", "Value2" }));
		dynamicList.add(Arrays
				.asList(new String[] { "ID3", "Name3", "Value3" }));
		dynamicList.add(Arrays
				.asList(new String[] { "ID4", "Name4", "Value4" }));
		dynamicList.add(Arrays
				.asList(new String[] { "ID5", "Name5", "Value5" }));
	}

	private void populateDynamicDataTable() {

		HtmlForm form = new HtmlForm();
		
		// Create <h:dataTable value="#{myBean.dynamicList}" var="dynamicItem">.
		dynamicDataTable = new HtmlDataTable();
		dynamicDataTable.setId("dataTable");
		dynamicDataTable.setValueExpression("value", createValueExpression(
				"#{dynamicDataTable.dynamicList}", List.class));
		dynamicDataTable.setVar("dynamicItem");
		
		//dynamicDataTable.getChildren().add(createAjaxSuporte());
		dynamicDataTable.setRowClasses("row1, row2" );
		//dynamicDataTable.setOnRowClick("#{dynamicDataTable.test}");
		
		// Iterate over columns.
		for (int i = 0; i < dynamicList.get(0).size(); i++) {

			// Create <h:column>.
			HtmlColumn column = new HtmlColumn();

			// Create <h:outputText value="dynamicHeaders[i]"> for <f:facet
			// name="header"> of column.
			HtmlOutputText header = new HtmlOutputText();
			header.setValue(dynamicHeaders[i]);
			column.setHeader(header);

			// Create <h:outputText value="#{dynamicItem[" + i + "]}"> for the
			// body of column.
			HtmlOutputText output = new HtmlOutputText();
			output.setValueExpression("value", createValueExpression(
					"#{dynamicItem[" + i + "]}", String.class));
			column.getChildren().add(output);			

			dynamicDataTable.getChildren().add(column);
		}
		HtmlColumn column = new HtmlColumn();
		
		HtmlAjaxCommandButton commandButton = new HtmlAjaxCommandButton();
		String value = "CLICK";
		commandButton.setValue(value);
		commandButton.setActionExpression(createMethodExpression("#{dynamicDataTable.getSelected}", String.class));		
	
		//HtmlActionParameter parameter = new HtmlActionParameter();
		//parameter.setValue("#{currentRow}");
		//commandButton.getChildren().add(parameter);
		
		column.getChildren().add(commandButton);
		
		
		dynamicDataTable.getChildren().add(column);
		//dynamicDataTable.getChildren().add(createAjaxSuporte());
	}

	// Getters
	// -----------------------------------------------------------------------------------

	public List<String> getItem() {
		return item;
	}

	public void setItem(List<String> item) {
		this.item = item;
	}

	public List<List<String>> getDynamicList() {
		return dynamicList;
	}

	private ValueExpression createValueExpression(String valueExpression,
			Class<?> valueType) {
		FacesContext facesContext = FacesContext.getCurrentInstance();
		return facesContext.getApplication().getExpressionFactory()
				.createValueExpression(facesContext.getELContext(),
						valueExpression, valueType);
	}

    private MethodExpression createMethodExpression(String actionExpression, Class<?> returnType) {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        return facesContext.getApplication().getExpressionFactory().createMethodExpression(
            facesContext.getELContext(), actionExpression, returnType, new Class[0]);
    }

    public String getSelected() {
		String x = dynamicDataTable.getRowData().toString();
		System.out.println(x);
		return "";
	}
}

Ao tentar pegar a linha selecionada dynamicDataTable.getRowData().toString(); só para ver se o o objeto ta populado o dynamicDataTable ta null

Alguma luz ?