Pessoal, estou em um projeto utilizando JSF, mas não conheço muito bem essa tecnologia.
Ao clicar em um dos itens da lista eu preciso redirecionar para outra pagina mostrando os dados referentes a esse elemento da lista. Mas não sei como pegar o Id ou alguma referência do elemento que estou clicando.
Se alguem puder me ajudar agradeço.
<h:dataTable var="hist" value="#{retorno.listHistorico}" rows="10">
<h:column>
<f:facet name="header">
<h:outputText value="#{msg['lbl_data']}"/>
</f:facet>
<h:outputText value="#{hist.data}" >
<f:convertDateTime pattern="dd/MM/yyyy"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg['lbl_num_prontuario']}"/>
</f:facet>
<h:outputText value="#{hist.pacientesProntuario} " />
</h:column>
</h:dataTable>
André este codigo pega o registro inteiro da linha que vc clicou:
protected FacesContext context() {
return (FacesContext.getCurrentInstance());
}
public void editarClienteDescontoProduto() throws Exception {
ClienteDescontoProdutoVO obj = (ClienteDescontoProdutoVO) context().getExternalContext().getRequestMap().get(“clienteDescontoProduto”);
setClienteDescontoProdutoVO(obj);
}
onde está “clienteDescontoProduto” é o nome do ver do seu dataTable
basta colocar um commandButton em uma das colunas chamar o metodo acima
espero que ajude.
hei André, eu acredito que um metodo utilizando um parametro ActionEvent possa te ajudar, utilizando UIComponent.
acho que talvez resolvesse fazendo um biding cara, vc terá um atributo no seu backingBean que é componente HtmlDataTable se não me engano, dai no seu jsp vc faz o biding la no seu h:dataTable para esse cara no backingBean ai vc consegue manipular e tal, mas ai vai ter que da uma pesquisada sobre como manipula ele no backing bean
da uma olhada nos metodos que tem e tal, mas acho que assim daria certo.
Muito obrigado pelas dicas pessoal. Consegui resolver com a sugestao do rodrigojwind, eu pego o ‘objeto’ da linha que eu cliquei.