Ajuda com JSF

3 respostas
hfernandes

Oi Pessoal!!

Sou iniciante em JSF (estou usado myfaces, tomahawk) e estou precisando fazer o seguinte:
Tenho um dataTable onde preciso ter uns checkbox para o usuário selecionar quais itens ele
deseja excluir, mas não sei como pegar estes valores no me bean, como faço isso?

Outro problema é o seguinte: O usuário clica no nome de uma pessoa no dataTable e ele
deve chamar uma outra pagina que tem um formulário e os dados da pessoa que ele escolher
deve preencher o formulário da outra pagina, como fazer isso?

abaixo o código da pagina com a dataTable.

<f:view>
                    <h:form>    
                        <f:loadBundle basename="br.com.memora.mensagens.labels" var="l"/>   
                        <t:panelGroup id="body">
                            <t:dataTable id="dados" width="200px" border="0"  var="a" value="#{areas.todasAreas}" rows="10" preserveDataModel="false" headerClass="barmenu"  rowClasses="linha1, linha2" cellpadding="0" cellspacing="0" >
                                <h:column>
                                    <f:facet name="header">                
                                        <h:outputText id="labelarea" value="#{l['label_area']}" />
                                    </f:facet>                                     
                                    <h:outputLink id="linkcolunanome" value="cadAreas.jsp"  >   
                                       <t:outputText id="colunanome" value="#{a.nome}" />
                                    </h:outputLink>
                                </h:column> 
                                <h:column>
                                    <f:facet name="header">                
                                        <h:outputText id="labelsigla" value="#{l['label_sigla']}" />
                                    </f:facet>
                                    <h:outputText id="colunasigla" value="#{a.sigla}"/>
                                </h:column> 
                                <h:column>
                                    <f:facet name="header">                
                                        <h:outputText id="labelexcluir" value="#{l['label_excluir']}" />
                                    </f:facet>
                                    <h:commandLink value="#{a.area_id}"  actionListener="#{areabean.removeAreas}">
                                                                               
                                    </h:commandLink>
                                </h:column> 
                            </t:dataTable> 
                            <h:panelGrid columns="1" styleClass="scrollerTable2" columnClasses="standardTable_ColumnCentered" >
                                <t:dataScroller id="scroll_1"
                                                for="dados"
                                                fastStep="10"                   
                                                pageCountVar="pageCount"
                                                pageIndexVar="pageIndex"
                                                styleClass="scroller"
                                                paginator="true"
                                                paginatorMaxPages="9"
                                                paginatorTableClass="paginator"
                                                paginatorActiveColumnStyle="font-weight:bold;"
                                                immediate="true"
                                                actionListener="#{areas.scrollerAction}"                                                
                                >
                                    <f:facet name="first" >
                                        <t:graphicImage url="libs/imagens/arrow-first.gif" border="0" />
                                    </f:facet>
                                    <f:facet name="last">
                                        <t:graphicImage url="libs/imagens/arrow-last.gif" border="0" />
                                    </f:facet>
                                    <f:facet name="previous">
                                        <t:graphicImage url="libs/imagens/arrow-previous.gif" border="0" />
                                    </f:facet>
                                    <f:facet name="next">
                                        <t:graphicImage url="libs/imagens/arrow-next.gif" border="0" />
                                    </f:facet>
                                    
                                </t:dataScroller>
                                <t:dataScroller id="scroll_2"
                                                for="dados"
                                                fastStep="10"  
                                                rowsCountVar="rowsCount"
                                                displayedRowsCountVar="displayedRowsCountVar"
                                                firstRowIndexVar="firstRowIndex"
                                                lastRowIndexVar="lastRowIndex"
                                                pageCountVar="pageCount"
                                                immediate="true"
                                                pageIndexVar="pageIndex"
                                >
                                    <h:outputFormat value="#{l['dataScroller_pages']}" styleClass="barmenu" >
                                        <f:param value="#{rowsCount}" />
                                        <f:param value="#{displayedRowsCountVar}" />
                                        <f:param value="#{firstRowIndex}" />
                                        <f:param value="#{lastRowIndex}" />
                                        <f:param value="#{pageIndex}" />
                                        <f:param value="#{pageCount}" />
                                    </h:outputFormat>
                                </t:dataScroller>
                            </h:panelGrid>
                        </t:panelGroup>                        
                    </h:form>                    
                </f:view>

obrigado,

Helber Fernandes

3 Respostas

hfernandes

Ninguém?

E

Brother,

Não sei se a melhor solução, pois tb sou newbie, mas tenta assim:

public String exibirRegistro() throws Exception {
    	
		FacesContext ctx = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest) ctx.getExternalContext().getRequest();
	    try {
			
	    	//Recuperando f:param do JSP passado pelo h:commandLink 
	    	this.setNumero(Long.parseLong(request.getParameter("numero")));	
			this.setAno(Long.parseLong(request.getParameter("ano")));
			this.setNumeroLote(Long.parseLong(request.getParameter("numeroLote")));

			//Aqui vc chama seu metodo que irá efetuar a consulta
			
    	}catch (Exception e) {
    		e.printStackTrace();   
    	}
    }

Espero que tenha dado uma luz.

Inté

marcosbrandao

hfernandes.

Pra voce pegar a linha selecionada. Use um binding do componente DataTable que vai ficar bem mais facil.

BackBean
private HtmlDataTable dataTableBinding;

//get e set

public String openPageToSelectRow(){
     ObjetoDaLista obj = (ObjetoDaLista)this.getPropostaTable().getRowData();

     //resto do codigo
}
jsp
&lt;t:dataTable var="lista"			
		    value="#{seuBean.suaLista}"
		    binding="#{seuBean.dataTableBinding}"
...
se o nome da pessoa for um commandLink você faz:
&gt;&lt;t:commandLink action="openPageToSelectRow"&gt;
Não sei se a sintaxe está bem correta, estou fazendo de cabeça e não lembro muito bem se é assim. Mas o principio é esse.
Criado 23 de janeiro de 2008
Ultima resposta 7 de fev. de 2008
Respostas 3
Participantes 3