【问题标题】:PrimeFaces Datatable ImplementationPrimeFaces 数据表实现
【发布时间】:2014-01-10 12:52:05
【问题描述】:

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

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:类 org.springframework.webflow.samples.booking.Car 中的方法 populateRandomCars 不能应用于给定类型; 必需:java.util.List,int 找到:java.util.List,int 原因:实参java.util.List无法通过方法调用转换为java.util.List

java:找不到合适的方法添加(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 数据表文档中,他们没有更多关于他们的系统如何工作的解释。 我不知道我做错了什么。

【问题讨论】:

    标签: java jsf primefaces datatable


    【解决方案1】:

    问题在于 populateRandomCars 期望的参数,以及您传递给它的参数

     ....
    
     public Car() {
         cars = new ArrayList<CarTemp>();
         populateRandomCars(cars, 50); // (2)
     }
    
     private void populateRandomCars(List<Car> list, int size) { // (1)
     ...
     }
    
     ....
    

    (1) 第一个参数是 Car 类型的 List --> List&lt;Car&gt;
    (2) 你正在传递一个 CarTemp 类型的 List --> List&lt;CarTemp&gt;

    所以你要修改populateRandomCars这个签名

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

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 2012-10-15
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      相关资源
      最近更新 更多