Ошибка двойного преобразования ввода JSF

У меня есть приложение JSF2, использующее Spring 3.0. У меня есть bean-компонент со свойством типа List с 5 элементами:

public class MyBean {
    private List values; 
    public List getValues() {
        if (values == null) {
            values = new ArrayList(5);
                for (int i = 0; i < 5; i++) {
                    values.add(null);
                }
        }
        return values;
    }
    public void setValues(List values) {
        this.values = values;
    }
}

В моем xhtml-файле у меня есть это для каждого элемента:


    

Моя цель - получить значения как ArrayList . Кроме того, я не хочу сохранять индивидуальные свойства для каждого члена. В соответствии с будущими требованиями общее число значения будет динамическим (а не жестко запрограммированным 5), поэтому я могу использовать цикл для определения входных данных для каждого элемента, но не будем сейчас сосредоточиваться на этом.

Итак, вот в чем проблема.Когда я отправляю страницу, преобразование неверное. Например, если мой ввод был 1, 2.0, 3 (и 2 пустых ввода для последних двух элементов, они не являются обязательными), я получаю следующий массив [1, «2.0», 3, «», «»] , где 1 и 3 относятся к типу BigDecimal , а 2.0 и последние 2 члена являются пустыми строками. Это вызывает ClassCastexception каждый раз, когда я пытаюсь получить член списка массивов, потому что по определению является универсальным, а общий тип - Double . BigDecimal нельзя преобразовать в Double ; очевидно, что попытки приведения строки также потерпят неудачу. Теперь я ожидал, что по крайней мере все члены будут преобразованы конвертером и будут одного типа. Кроме того, мне нужен способ правильно получить двойное значение. Я также пробовал следующее:


    

, но это вызвало исключение:

Поведение по умолчанию, вызванное требованием идентификатора преобразователя, переданного в конструктор, должно переопределить ConvertHandler (ConverterConfig)

Я должен признать, что я Я новичок в технологии JSF, но что касается этой статьи, не было необходимости что-либо переопределять. Любая помощь будет принята с благодарностью

5
задан Ivaylo Slavov 8 April 2013 в 19:43
поделиться