Настройщик необходим для запоминания активных индексов, как и при отправке формы. В принципе, вам нужно привязать его как выражение значения (с помощью свойства), а не как выражение метода (например, метод действия), так и немодифицируемую коллекцию (например, activeIndex="#{param.tab}"
). Точно так же, как и с входными значениями. Технически вы действительно делаете это «просто совершенно неправильно»;)
. Однако это требование понимается. Учитывая, что вас действительно не интересуют измененные активные индексы и, следовательно, вы хотите сбросить их до значений по умолчанию для каждой формы, вы можете обойти его, сохранив результат в качестве атрибута запроса с помощью
. Таким образом, вы будете обманывать EL, чтобы установить его в карте атрибутов запроса, а не в намеренном компоненте bean.
Под обложками в основном будет работать externalContext.getRequestMap().put("activeIndex", value)
, что, очевидно, будет просто работа.
Обновление: при проверке исходного кода компонента AccordionPanel
я увидел другое обходное решение, учитывая тот факт, что activeIndex
не будет установлен, если атрибут rendered
оценивает false
. Поэтому просто измените атрибут rendered
, чтобы вести себя именно так: оцените false
во время фазы значений модели обновления (4-я фаза).