ICEfaces 2.0 и метод h:commandButton не вызываются, с ice:commandButton все в порядке

Я пытаюсь использовать ace:fileEntry для загрузки изображения, так как я читал, что этот компонент требует отправки от h:commandButton, чтобы начать загрузку. Моя проблема в том, что когда я переключил свой ice:commandButton на h:, мой управляемый компонент (который находится в области диалога) снова создается (вызывается @PostConstruct), а метод в h:commandButton, а также fileEntryListener больше не вызываются.
Еще одна проблема, которая может быть причиной этого, заключается в том, что когда я впервые захожу на свою страницу, создается управляемый компонент, и я вызываю начало диалога, но когда я делаю второй запрос (от commandLink), управляемый компонент создается снова, и начинается новый разговор, после чего вы можете играть, как долго вы хотите, чтобы управляемый компонент не создавался снова.
Возвращаясь к моему первоначальному вопросу, если у меня есть ice:commandButton, управляемый компонент не создается снова, если он с h:, он создается снова.
И чтобы добавить немного веселья, если я удалю атрибут rendered (который разрешается в true) из ace:fileEntry, вызывается fileEntryListener, но действие из h:commandButton не вызывается, несмотря ни на что.
Я пытался добавить к компонентам явные идентификаторы, пытался изменить ice:form на h:form .. ничего.

Пожалуйста, помогите.

Ps: почему ICEfaces 2 не может работать со всеми компонентами льда, почему он требует h:commandButton вместо ice:commandButton, почему новый материал JSF 2.0 с f:selectItems поддерживается обычный список не работает с ice:selectOneMenu, работает только с h:selectOneMenu ? Что случилось с ICEfaces? И почему CDI не работает должным образом, с Seam 2 также у меня были проблемы с диалогами, вызываемыми дважды.. ps2: если я не перехожу к другому представлению, ?cid=1 отсутствует в URL.


person Cosmin Cosmin    schedule 13.06.2011    source источник


Ответы (2)


Теперь, с ace:fileEntry и h:commandButton, причина, по которой ice:commandButton нельзя использовать, заключается в том, что это компонент AJAX, а браузеры не будут загружать файлы при отправке AJAX. Даже с HTML5 это не происходит автоматически, и необходимо использовать новые API-интерфейсы File и XmlHttpRequest. В браузере HTML4 только полная страница, полная форма, отправка загружает содержимое файла, и только h: commandButton работает таким образом. Для получения более подробной информации вы можете увидеть это объяснение в верхней части страницы по адресу:

http://wiki.icefaces.org/display/ICE/FileEntry

С нашими компонентами ice:, которые являются расширенными вариантами компонентов h:, такими как ice:selectOneMenu, им не хватает некоторых новых функций JSF 2, потому что мы сосредоточились на нашей новой Advanced Component Environment из-за потребительского спроса на многофункциональный клиент- боковые компоненты. Кроме того, основное внимание уделялось поддержанию обратной совместимости с компонентами ice: для облегчения перехода клиентов с ICEfaces 1.8.x на ICEfaces 2.x и, в меньшей степени, для изменения поведения этих компонентов. Но мы по-прежнему активно поддерживаем и улучшаем компоненты ice: и скоро добавим новые функции. Не стесняйтесь создавать любые запросы на улучшения в нашей системе Jira и голосовать за любые существующие записи, так как это определяет наши приоритеты развития.

http://jira.icefaces.org/

  • Марк Коллетт
person Mark Collette    schedule 15.06.2011

Меня зовут Марк Коллетт из команды компонентов ICEfaces, и, надеюсь, я смогу ответить на некоторые из ваших вопросов.

Большинство ваших проблем больше связаны с интеграцией CDI, чем с самими компонентами. Я знаю, что симптомы меняются в зависимости от того, какой компонент вы используете, но я думаю, это потому, что компоненты ice: используют AJAX, а компоненты h: — нет. Во многих случаях проблемы интеграции с другими платформами более заметны при взаимодействиях AJAX, чем при взаимодействиях полной страницы GET/POST. Таким образом, ваши проблемы могут быть связаны либо с нашей интеграцией CDI, либо с конфигурацией вашего приложения. Поэтому, пожалуйста, ознакомьтесь с нашей документацией по использованию ICEfaces с CDI, и если у вас все еще возникнут какие-либо проблемы, я рекомендую опубликовать подробности на наших форумах.

http://wiki.icefaces.org/display/ICE/Использование+ICEfaces+with+CDI

http://www.icefaces.org/JForum/forums/list.page

[Извините, но этот форум не позволяет мне размещать более 2 ссылок, поэтому я разделю оставшуюся часть своего сообщения на другой пост, и, надеюсь, это сработает]

  • Марк Коллетт
person Mark Collette    schedule 15.06.2011