Как получить контекстное Pojo при обработке события JSF 2.0 - PullRequest
1 голос
/ 09 августа 2011

Я использую сторонний компонент JSF 2.0 (Primefaces 3.0 FileUpload), который определяет свое собственное пользовательское событие. На стороне сервера подпись обработчика выглядит так:

public void handleFileUpload(FileUploadEvent event)

Проблема в том, что моя форма построена динамически и может содержать десятки отдельных элементов управления FileUpload, и мне нужно знать, КАКОЙ из элементов управления fileupload сгенерировал событие.

На самом деле, мне не нужно знать, какой именно, мне просто нужен "var", который был в пользовательском интерфейсе: repeat, который вызвал создание конкретного элемента управления FileUpload. С обычными контроллерами я мог бы просто передать нужную мне переменную, но этот сторонний компонент использует механизм обработки событий, а не контроллер, и, как я не знаю, как работать с событиями JSF 2.0, я не знаю как добраться до POJO, учитывая только событие.

Я вижу, что в событии есть метод getComponent (), который сообщает мне UIComponent, но после осмотра я не вижу простого способа добраться до контекстных переменных или даже способа генерировать свое собственное выражение EL оценивать, чтобы получить контекстные переменные.

Таким образом, вопрос сводится к ... учитывая только событие, как я могу получить контекстные переменные в области видимости для конкретного компонента, по которому щелкнули?

1 Ответ

1 голос
/ 09 августа 2011

Разобрался ... Мне нужно было поместить это в сторонний компонент

<f:attribute name="myObject" value="#{myObject}"/>

Тогда это доступно в карте атрибутов компонента на стороне сервера:

final MyOjbect myObject = (MyObject) event.getComponent().getAttributes().get("myObject");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...