pessoal... eu estou tentando fazer uma simples listagem de carros que, ao clicar este fique selecionado e ao clicar em show exiba os dados
copiei o codigo do site do primefaces na parte de dataTable só adaptei algumas partes como a tradução dos campos em portugues..
mas o resultado nao saiu o mesmo, em vez de selecionar apenas 1 linha ele seleciona todas que eu clico e nao exibe os dados de nenhuma linha
segue abaixo o codigo
classe Cars/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans;
/**
*
* @author F2PRO
*/
public class Cars {
private String modelo;
private Integer ano;
private String fabricante;
private String cor;
public Cars(String modelo, Integer ano, String fabricante, String cor) {
this.modelo = modelo;
this.ano = ano;
this.fabricante = fabricante;
this.cor = cor;
}
public Integer getAno() {
return ano;
}
public void setAno(Integer ano) {
this.ano = ano;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public String getFabricante() {
return fabricante;
}
public void setFabricante(String fabricante) {
this.fabricante = fabricante;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
}
o controller CarBean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mb;
import beans.Cars;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
/**
*
* @author F2PRO
*/
@ManagedBean(name="CarBean")
@RequestScoped
public class CarBean {
/** Creates a new instance of CarBean */
private List<Cars> cars;
private Cars selectedCar;
public CarBean() {
cars = new ArrayList<Cars>();
cars.add(new Cars("Hylux", 2008, "toyota", "bege"));
cars.add(new Cars("TDM 850", 1998, "Yamaha", "dourada"));
cars.add(new Cars("Hayabusa", 2008, "Suzuky", "azul"));
cars.add(new Cars("Ibiza", 1990, "Ford", "prata"));
}
public List<Cars> getCars() {
return cars;
}
public void setCars(List<Cars> cars) {
this.cars = cars;
}
public Cars getSelectedCar() {
return selectedCar;
}
public void setSelectedCar(Cars selectedCar) {
this.selectedCar = selectedCar;
}
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<link type="text/css" rel="stylesheet" href="skin.css"/>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable var="car" value="#{CarBean.cars}" selection="#{CarBean.selectedCar}" selectionMode="single">
<p:column>
<f:facet name="header">
<h:outputText value="Modelo"/>
</f:facet>
<h:outputText value="#{car.modelo}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Ano"/>
</f:facet>
<h:outputText value="#{car.ano}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Fabricante"/>
</f:facet>
<h:outputText value="#{car.fabricante}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Cor"/>
</f:facet>
<h:outputText value="#{car.cor}"/>
</p:column>
<f:facet name="footer">
<p:commandButton value="View" image="ui-icon ui-icon-search"
update="carDialog" oncomplete="carDialog.show()"/>
</f:facet>
</p:dataTable>
<p:dialog header="Detalhes do carro" widgetVar="carDialog" resizable="false"
width="200" showEffect="clip" hideEffect="fold">
<h:panelGrid id="display" columns="2">
<h:outputText value="Model:" />
<h:outputText value="#{CarBean.selectedCar.modelo}" />
<h:outputText value="Year:" />
<h:outputText value="#{CarBean.selectedCar.ano}" />
<h:outputText value="Manufacturer:" />
<h:outputText value="#{CarBean.selectedCar.fabricante}" />
<h:outputText value="Color:" />
<h:outputText value="#{CarBean.selectedCar.cor}" />
</h:panelGrid>
</p:dialog>
</h:form>
</h:body>
</html>
o que há de errado?
[]'s