2014-11-24 44 views
0

我有實現示例DataTable的問題 - 從Primefaces網站選擇:​​實例數據表 - 從Primefaces選擇不能編譯

我創建了兩個類描述:SelectionView.java and CarService.java,但是我的Netbeans 8.0.1顯示錯誤類:

SelectionView.java:包導入org.primefaces.showcase.domain.Car 不存在數據包導入 org.primefaces.showcase.service.CarService不存在

同在CarService.java:

包導入org.primefaces.showcase.domain.Car不存在

但是類似的進口,如:

import org.primefaces.event.SelectEvent; 
import org.primefaces.event.UnselectEvent; 

工作正常。

我在Netbeans 8.0.1和buiilt中使用Primefaces 5.0庫。

下面是代碼: SelectionView.java

package main; 

import java.io.Serializable; 
import java.util.List; 
import javax.annotation.PostConstruct; 
import javax.faces.application.FacesMessage; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ManagedProperty; 
import javax.faces.bean.ViewScoped; 
import javax.faces.context.FacesContext; 
import org.primefaces.event.SelectEvent; 
import org.primefaces.event.UnselectEvent; 
import org.primefaces.showcase.domain.Car; 
import org.primefaces.showcase.service.CarService; 

@ManagedBean(name="dtSelectionView") 
@ViewScoped 
public class SelectionView implements Serializable { 

    private List<Car> cars1; 
    private List<Car> cars2; 
    private List<Car> cars3; 
    private List<Car> cars4; 
    private List<Car> cars5; 
    private List<Car> cars6; 
    private Car selectedCar; 
    private List<Car> selectedCars; 

    @ManagedProperty("#{carService}") 
    private CarService service; 

    @PostConstruct 
    public void init() { 
     cars1 = service.createCars(10); 
     cars2 = service.createCars(10); 
     cars3 = service.createCars(10); 
     cars4 = service.createCars(10); 
     cars5 = service.createCars(10); 
     cars6 = service.createCars(10); 
    } 

    public List<Car> getCars1() { 
     return cars1; 
    } 

    public List<Car> getCars2() { 
     return cars2; 
    } 

    public List<Car> getCars3() { 
     return cars3; 
    } 

    public List<Car> getCars4() { 
     return cars4; 
    } 

    public List<Car> getCars5() { 
     return cars5; 
    } 

    public List<Car> getCars6() { 
     return cars6; 
    } 

    public void setService(CarService service) { 
     this.service = service; 
    } 

    public Car getSelectedCar() { 
     return selectedCar; 
    } 

    public void setSelectedCar(Car selectedCar) { 
     this.selectedCar = selectedCar; 
    } 

    public List<Car> getSelectedCars() { 
     return selectedCars; 
    } 

    public void setSelectedCars(List<Car> selectedCars) { 
     this.selectedCars = selectedCars; 
    } 

    public void onRowSelect(SelectEvent event) { 
     FacesMessage msg = new FacesMessage("Car Selected", ((Car) event.getObject()).getId()); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 
    } 

    public void onRowUnselect(UnselectEvent event) { 
     FacesMessage msg = new FacesMessage("Car Unselected", ((Car) event.getObject()).getId()); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 
    } 
} 

CarService.java

package main; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 
import java.util.UUID; 
import javax.faces.bean.ApplicationScoped; 
import javax.faces.bean.ManagedBean; 
import org.primefaces.showcase.domain.Car; 

@ManagedBean(name = "carService") 
@ApplicationScoped 
public class CarService { 

    private final static String[] colors; 

    private final static String[] brands; 

    static { 
     colors = new String[10]; 
     colors[0] = "Black"; 
     colors[1] = "White"; 
     colors[2] = "Green"; 
     colors[3] = "Red"; 
     colors[4] = "Blue"; 
     colors[5] = "Orange"; 
     colors[6] = "Silver"; 
     colors[7] = "Yellow"; 
     colors[8] = "Brown"; 
     colors[9] = "Maroon"; 

     brands = new String[10]; 
     brands[0] = "BMW"; 
     brands[1] = "Mercedes"; 
     brands[2] = "Volvo"; 
     brands[3] = "Audi"; 
     brands[4] = "Renault"; 
     brands[5] = "Fiat"; 
     brands[6] = "Volkswagen"; 
     brands[7] = "Honda"; 
     brands[8] = "Jaguar"; 
     brands[9] = "Ford"; 
    } 

    public List<Car> createCars(int size) { 
     List<Car> list = new ArrayList<Car>(); 
     for(int i = 0 ; i < size ; i++) { 
      list.add(new Car(getRandomId(), getRandomBrand(), getRandomYear(), getRandomColor(), getRandomPrice(), getRandomSoldState())); 
     } 

     return list; 
    } 

    private String getRandomId() { 
     return UUID.randomUUID().toString().substring(0, 8); 
    } 

    private int getRandomYear() { 
     return (int) (Math.random() * 50 + 1960); 
    } 

    private String getRandomColor() { 
     return colors[(int) (Math.random() * 10)]; 
    } 

    private String getRandomBrand() { 
     return brands[(int) (Math.random() * 10)]; 
    } 

    public int getRandomPrice() { 
     return (int) (Math.random() * 100000); 
    } 

    public boolean getRandomSoldState() { 
     return (Math.random() > 0.5) ? true: false; 
    } 

    public List<String> getColors() { 
     return Arrays.asList(colors); 
    } 

    public List<String> getBrands() { 
     return Arrays.asList(brands); 
    } 
} 

任何想法? !:(

感謝

+0

更改包。到org.primefaces.showcase.service而不是簡單的主或改變導入main.CarService? – kdoteu 2014-11-24 12:21:57

回答

0

您正嘗試導入從primefaces類展示:

import org.primefaces.showcase.domain.Car; 
import org.primefaces.showcase.service.CarService; 

這些都是不可在你的項目..卸下2個進口

+0

我得到了。問題是,如果我刪除它們,「車」成爲未知類型。我正在尋找如何導入它們 一個專案。 – Alonuch 2014-11-24 17:49:43

+0

import org.primefaces.event.SelectEvent; import org.primefaces.event.UnselectEvent; 這些是primefaces .jar包的一部分,因此可用。 Car和CarService不是primefaces包的一部分。這些只是舉例說明primefaces如何工作。你不要導入這些,但你讓你自己... – 2014-11-25 07:15:11

+0

我明白這一點。謝謝! – Alonuch 2014-11-25 11:47:12