Я использую JSF 2.1 и ICEfaces 4.2.0.
Итак, вкратце:
- Одно веб-приложение с несколькими страницами
- Глобальная конфигурация
org.icefaces.blockUIOnSubmit = true
- страница 'X' имеет много форм
Я хочу, чтобы только одна форма на странице 'X' имела blockUIOnSubmit = false
.
Другими словами, когда эта форма отправляется, я не хочу, чтобы отображался блокирующий интерфейс.
Возможно ли это?
Немного подробнее:
Моя форма выглядит так:
<h:form id="MyForm" name="MyForm">
<h:inputText id="MyFormText" value="#{myPageBean.myFormText}" />
<ace:pushButton id="MyFormBtn" action="#{myPageBean.myFormListener}" />
</h:form>
Таким образом, он содержит h:form
, h:inputText
и ace:pushButton
.
Есть ли атрибут, который можно было бы использовать, чтобы не отображать блокирующий интерфейс на каком-либо из этих элементов?
EDIT:
Я нашел элемент, который мог бы быть использован для этого конкретного случая использования, элемент ace: submitMonitor . Он имеет атрибут «blockUI», который можно установить как «@none».
Но, к сожалению, есть исправление (на мой взгляд, ненужное), которое сделало элемент непригодным для использования в этом случае, исправление можно увидеть здесь: http://jira.icesoft.org/browse/ICE-10518.
Размещая здесь проблему, я надеюсь, что она станет более заметной, и кто-то изменит это так, чтобы он мог использовать ace: submitMonitor для этого конкретного случая использования.
Если есть что-то, чего я не понимаю, почему атрибут ace:submitMonitor
blockUI
не может перезаписать настройку org.icefaces.blockUIOnSubmit
, объясните, пожалуйста, почему.
РЕДАКТИРОВАТЬ 2
В JIRA добавлена проблема этой проблемы, которую можно посмотреть здесь: ICE-11454
РЕДАКТИРОВАТЬ 3
Я получил несколько ответов на мой комментарий к JIRA: ICE-10518 .
По сути, это говорит о том, что компонент ace:submitMonitor
не должен влиять на глобальные конфигурации. Вы должны использовать либо глобальную конфигурацию org.icefaces.blockUIOnSubmit
, либо компонент ace:submitMonitor
, но не оба сразу.
Существует опция, в которой вы можете переопределить глобальную конфигурацию org.icefaces.blockUIOnSubmit
для каждой страницы, используя следующий код:
<h:body>
<icecore:config blockUIOnSubmit="true|false"/>
...
Более подробную информацию об этом можно найти здесь: icecore: config
Таким образом, вы можете установить blockUIOnSubmit для конкретной страницы, но не для конкретной формы.