JSF EL и списки
у myBean getSomeMyListInstance что возвращает?
Короче, вот так не работает:
public class MyBean implements Serializeable {
private MyList<SomeClass> v = new MyList<SomeClass>
public MyBean {...}
public MyList<SomeClass> getV {
return v;
}
}
А так - работает:
class MyListAccessor<E> {
MyList<E> list;
public MyListAccessor(MyList<E> list) {
this.list = list;
}
public void onMyEvent(ActionEvent e) {
list.onMyEvent(e);
}
public String getMyProperty {
return list.getMyProperty;
}
public List<E> getList {
return list;
}
}
public class MyBean implements Serializeable {
private MyList<SomeClass> v = new MyList<SomeClass>
public MyBean {...}
public MyListAccessor<SomeClass> getV {
return new MyListAccessor<SomeClass>(v);
}
}
Только в последнем случае приходится писать не "#{myBean.v}", а "#{myBean.v.list}" там, где нужен именно список.
хмм, может ты не так понял - сигнатура у метода какая?
хмм, может ты не так понял - сигнатура у метода какая?добавил примеры
Такое ощущение, что разборщик EL-выражения при получении объекта-списка считает его простым List'ом.Скорее всего так и есть. Если есть сурсы - просто подебажься, почти наверняка при разборе натолкнешься на что-нибудь вроде if (obj instanceof List) =)
Ну или кинь сюда свою имплементацию EL - поглядим =)
ЗЫ ты перешел на джаву? =)
ЗЫ ты перешел на джаву? =)с начала весны работаю на двух веб-проектах
Оставить комментарий
Andbar
Есть некий проект на Java Server Faces, содержащий кучу списков, с которыми надо делать однообразные действия. Чтобы не писать одно и то же, я запихнул основные действия и некоторые свойства (которые должны быть доступны в контексте EL-выражений в JSP-шке я запихнул основные свойства и действия в наследник ArrayList'а следующим образом (параметр шаблона - не просто объект, а наследник другого шаблонного класса):MyList.java: В общем, при использовании этого шаблонного класса, количество служебного кода заметно уменьшилось, но когда я попытался использовать свойства и обработчики событий (типа "#{myBean.someMyListInstance.myProperty}" меня ждал облом: кидалось исключение что-то типа "у myBean.someMyListInstance нет свойства myProperty". А валидатор в eclipse считал подобные выражения ошибочными. Такое ощущение, что разборщик EL-выражения при получении объекта-списка считает его простым List'ом. Пока обошел проблему написанием прокси-класса, однако мб. есть более простое решение?