Pessoal, tenho a seguinte duvida, tenho uma listagem de planos e seleciono os mesmos por checkbox, como funciona meu sistema o usuário seleciona o plano e clica em editar ou excluir.
<h:commandLink action="#{dados.recuperarPlano}" id="actEdit" styleClass="disable" onclick="edit('editPlano',this)" >Editar</h:commandLink>
Ao clicar no link o form é executado e acionado o método recuperarPlano do meu bean, a duvida é como faço para recuperar no bean os valores que foram selecionados?
Alguem poderia me dar um exemplo?
Desde já agradeço.
Na tag do seu checkbox, a propriedade “value” tem estar uma propriedade do seu bean (que contenha get e set).
Dentro do seu método é só vc usar a propriedade do bean. Pq o jsf vai primeiro “setar” o valor antes de rodar o método. Ajudei??? 8)
sim, esta parte de como ele seta eu entendi, fiz isso no meu metodo cadastrar, é tranqüilo. Mas como fazer para recuperar varios valores, sei que devo usar um ArrayList, mas ai estou com duvidas de como deve ser implementado. :?
Vc cria uma propriedade tipo: “private List selectedItems” e na tag
<h:selectManyCheckbox value="#{seuBean.selectedItems}">
<f:selectItem itemLabel=“id” itemValue=“id” />…
Vc pode usar a tag <f:selectItems> e setar o binding para um List de SelectItem.
private List<SelectItens> selectItensTabela
public void carregaSelectItensTabela(){
getSelectItensTabela().add(new SelectItem("",""));
for(int i=0; i < getLocateTabelas().size(); i++){
getSelectItensTabela().add(new SelectItem(getLocateTabelas().get(i).getCodigo(),getLocateTabelas().get(i).getCodigo() + " - " + getLocateTabelas().get(i).getDescricao()));
}
}
e na tag :
<f:selectItems value="#{sistema.selectItensTabela}" />
Os dados eu já estou trazendo perfeitamente, a minha duvida é como pegar os valores no bean.
Exemplo.
Preciso excluir todos os checkbox selecionados.
Como ficaria meu metodo de exclusao? está é a minha duvida.
Mostra como vc está fazendo. é dentro de uma dataTable?
Está dentro de um dataTable sim, segue abaixo o mesmo. Obrigado
[code] <h:dataTable id=“tabela” styleClass=“tableList” border=“1” value="#{dados.listaDePlano}" var=“name”>
<h:column>
<f:facet name="header">
<h:outputText value="ID"></h:outputText>
</f:facet>
<h:selectBooleanCheckbox onclick="check(this)" value="#{name.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{name.id}"></h:outputText>
</f:facet>
<h:outputText value="#{name.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Valor"></h:outputText>
</f:facet>
<h:outputText value="#{name.valor}">
<f:convertNumber type="currency"/>
</h:outputText>
</h:column>
</h:dataTable>[/code]
Olha isso que vc está fazendo eu faço diferente pq uso o Richfaces…
Mas acho que vc deveria criar uma propriedade do tipo boolean no seu objeto e este colocar na tag <h:selectBooleanCheckbox > aí no seu método vc daria um loop na List listaDePlano e aí identificava os que estãoi marcados como true e efetuava o método que vc quer.