PrimeFaces数据库实施

时间:2014-01-10 12:52:05

标签: java jsf primefaces datatable

我正在尝试添加运行数据表项目我的类文件

package org.springframework.webflow.samples.booking;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.lang.String;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped

public class Car implements Serializable {
    private final static String[] colors;

    private final static String[] manufacturers;

    private List<CarTemp> cars;

    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";

        manufacturers = new String[10];
        manufacturers[0] = "Mercedes";
        manufacturers[1] = "BMW";
        manufacturers[2] = "Volvo";
        manufacturers[3] = "Audi";
        manufacturers[4] = "Renault";
        manufacturers[5] = "Opel";
        manufacturers[6] = "Volkswagen";
        manufacturers[7] = "Chrysler";
        manufacturers[8] = "Ferrari";
        manufacturers[9] = "Ford";
    }


    public Car() {
         cars = new ArrayList<CarTemp>();

        populateRandomCars(cars, 50);
    }

    private void populateRandomCars(List<Car> list, int size) {

       CarTemp a=  new CarTemp(getRandomModel(), getRandomYear(), getRandomManufacturer(), getRandomColor());
        for(int i = 0 ; i < size ; i++)
            list.add(a);

    }

    public List<CarTemp> getCars() {
        return cars;
    }

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

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

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

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

这是我的CarTemp.Java文件

package org.springframework.webflow.samples.booking;
 public class CarTemp {

    private String model;
    private int year;
    private String manufacturer;
    private String color;

    public CarTemp(String model, int year, String manufacturer, String color) {
        this.model = model;
        this.year = year;
        this.manufacturer = manufacturer;
        this.color = color;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

我得到的错误:

  

java:方法中的populateRandomCars类org.springframework.webflow.samples.booking.Car不能应用于给定的类型;         required:java.util.List,int         发现:java.util.List,int         原因:实际参数java.util.List无法通过方法调用转换转换为java.util.List

     

java:找不到合适的add方法(org.springframework.webflow.samples.booking.CarTemp)       方法java.util.List.add(int,org.springframework.webflow.samples.booking.Car)不适用         (实际和正式的参数列表长度不同)       方法java.util.List.add(org.springframework.webflow.samples.booking.Car)不适用         (实际参数org.springframework.webflow.samples.booking.CarTemp无法通过方法调用转换转换为org.springframework.webflow.samples.booking.Car)

看起来该类可以添加到列表中。 在primefaces数据表文档中,他们没有关于他们的系统如何工作的任何更多解释。 我无法弄清楚我做了什么错。

1 个答案:

答案 0 :(得分:1)

问题是populateRandomCars期望作为参数,以及你传递给它的内容

 ....

 public Car() {
     cars = new ArrayList<CarTemp>();
     populateRandomCars(cars, 50); // (2)
 }

 private void populateRandomCars(List<Car> list, int size) { // (1)
 ...
 }

 ....

(1)第一个参数是期望Car类型的List - &gt; List<Car>
(2)你传递的是CarTemp类型的清单 - &gt; List<CarTemp>

因此您必须将populateRandomCars修改为此签名

 private void populateRandomCars(List<CarTemp> list, int size) {}