Как передать список «Примечание» в составной компонент JSF?

Мне нужно создать составной компонент JSF, где я должен передать атрибут, как показано ниже:

<composite:attribute name="noteList" type="XXX" required="true"></composite:attribute>

что я должен передать в атрибуте type, если это класс List of type Note?

Я знаю, что могу сделать type="java.util.List", но как я могу сделать его специфичным для List типа Note?


person Gaurav Jeswani    schedule 16.07.2015    source источник


Ответы (1)


но как я могу сделать его специфичным для списка типа Note

К сожалению, вы не можете. Он определяется во время выполнения, во время которого информация об универсальном типе уже потеряна. Технически, это можно обойти с помощью трюков с отражением, но у разработчиков спецификаций JSF и EL могут быть свои причины не указывать это.

Лучше всего заменить его пользовательским подклассом, как показано ниже:

public class Notes extends ArrayList<Note> {}
<cc:attribute ... type="com.example.model.Notes" />

Но для этого могут потребоваться изменения в модели.

person BalusC    schedule 16.07.2015
comment
Хорошо, вы поняли, вы хотите обернуть весь List‹Note› внутри другого класса Notes. Я правильно понимаю BalusC? - person Gaurav Jeswani; 16.07.2015
comment
Неа. Используйте new Notes() вместо new ArrayList<Note>(). Обертка через конструктор тоже может (он просто создаст другой список), но это не обязательно. - person BalusC; 16.07.2015
comment
Вы НЕ должны расширять ArrayList! - person Hannes Schneidermayer; 25.06.2020