Pessoal, fiz um carrinho de compras… So estou com um problema: Eu add 3 elementos no array, mas ele so aparece o ulltimo elemento q eu add (3x) pq eu adicionei 3 elementos.
EX:
Caneta 5
Mouse 2
copo 12
Ele mostra assim na pagina jsf:
copo 12
copo 12
copo 12
Outra coisa: Eu fiz um System.out.println(lista);
Essa lista mostra o mesmo objeto sempre… Tipo, add 4 elementos PARECE q repete esse elemeento 4x…
[requisicao.web.CarrinhoBean@4bb1c978, requisicao.web.CarrinhoBean@4bb1c978, requisicao.web.CarrinhoBean@4bb1c978] requisicao.web.CarrinhoBean@4bb1c978]
Vou colocar o MB e a pagina jsf…
@ManagedBean(name="carrinhoBean")
@SessionScoped
public class CarrinhoBean implements Serializable{
private static final long serialVersionUID = 7810729837634865242L;
private String nomeItem;
private int quantidadeItem;
public String car;
// getts e setters
private List<CarrinhoBean> lista = new ArrayList<CarrinhoBean>();
public List<CarrinhoBean> listar() {
return this.lista;
}
public String insere() {
lista.add(this);
System.out.println(lista.toString());
return null;
}
public String remove() {
lista.remove(this);
return null;
}
public List<CarrinhoBean> getLista() {
if (this.lista == null || this.lista.isEmpty()) {
CarrinhoBean carrinhoBean = new CarrinhoBean();
this.lista = carrinhoBean.listar();
}
return this.lista;
}
public void setLista(List<CarrinhoBean> lista) {
this.lista = lista;
}
}
Nova Requisição
</ui:define>
<ui:define name="corpo">
<h:form id="cadastro">
<h:messages />
<br/>
<fieldset><legend>Requisição</legend>
<h:panelGrid columns="3">
<h:outputText value="Item:"/>
<h:selectOneMenu id="selecioneitem" value ="#{carrinhoBean.nomeItem}">
<f:selectItem itemLabel="Selecione" itemValue=""/>
<f:selectItems
value="#{itemBean.itens}"
var ="itens"
itemValue="#{itens}"
itemLabel="#{itens}"/>
</h:selectOneMenu>
<br/>
<h:outputLabel value="Quantidade:" for="quantidadeItem" />
<h:inputText id="quantidadeItem" label="Quantidade"
value="#{carrinhoBean.quantidadeItem}" required="true" size="4"/>
<br/>
<h:commandButton action="#{carrinhoBean.insere}" value="Adicionar" />
</h:panelGrid>
</fieldset>
<br/>
<br/>
<fieldset><legend>Meus Itens</legend>
<h:panelGrid columns="3">
<h:dataTable value="#{carrinhoBean.lista}" var="car" rules="rows"
cellpadding="5">
<f:facet name="caption">
<br />
</f:facet>
<f:facet name="header">Início da listagem</f:facet>
<f:facet name="footer">Final da listagem</f:facet>
<h:column>
<f:facet name="header">Nome do Item</f:facet>
<h:outputText value="#{car.nomeItem}" />
</h:column>
<h:column>
<f:facet name="header">Qntd. Solicitada</f:facet>
<h:outputText value="#{car.quantidadeItem}" />
</h:column>
<h:column>
<h:commandLink action= "#{carrinhoBean.remove}"
onclick="if (!confirm('Confirma a exclusão ?')) return false;">
<h:graphicImage library="imagens" name="apagar.png" style="border:0" />
</h:commandLink>
</h:column>
</h:dataTable>
</h:panelGrid>
</fieldset>
<br/>
<br/>
<h:commandButton value="Finalizar" />
<br/>
<br/>
</h:form>
</ui:define>
</ui:composition>
</html>
