Исключение при выполнении команды, если выражение EL присутствует на p: tabView [duplicate]

Вот ответ на ваш вопрос:

Ошибка UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure говорит все.

В соответствии с guru99.com упоминается использование webdriver.firefox.marionette в пределах System.setProperty. В Selenium 3.x вместо этого мы будем использовать webdriver.gecko.driver.

Итак, рассмотрим изменение строки кода:

System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");

:

System.setProperty("webdriver.gecko.driver","C:\\your_directory\\geckodriver.exe");

Дайте мне знать, если это ответит на ваш вопрос.

7
задан BalusC 25 June 2014 в 20:25
поделиться

1 ответ

Настройщик необходим для запоминания активных индексов, как и при отправке формы. В принципе, вам нужно привязать его как выражение значения (с помощью свойства), а не как выражение метода (например, метод действия), так и немодифицируемую коллекцию (например, activeIndex="#{param.tab}"). Точно так же, как и с входными значениями. Технически вы действительно делаете это «просто совершенно неправильно»;)

. Однако это требование понимается. Учитывая, что вас действительно не интересуют измененные активные индексы и, следовательно, вы хотите сбросить их до значений по умолчанию для каждой формы, вы можете обойти его, сохранив результат в качестве атрибута запроса с помощью <c:set>. Таким образом, вы будете обманывать EL, чтобы установить его в карте атрибутов запроса, а не в намеренном компоненте bean.

<c:set var="activeIndex" value="#{myController.getActiveIndexesForSections('whatever')}" scope="request" />
<p:accordionPanel multiple="true" activeIndex="#{activeIndex}">
    <!-- bla bla... -->
</p:accordionPanel>

Под обложками в основном будет работать externalContext.getRequestMap().put("activeIndex", value), что, очевидно, будет просто работа.


Обновление: при проверке исходного кода компонента AccordionPanel я увидел другое обходное решение, учитывая тот факт, что activeIndex не будет установлен, если атрибут rendered оценивает false. Поэтому просто измените атрибут rendered, чтобы вести себя именно так: оцените false во время фазы значений модели обновления (4-я фаза).

<p:accordionPanel multiple="true" 
    activeIndex="#{myController.getActiveIndexesForSections('whatever')}"
    rendered="#{facesContext.currentPhaseId.ordinal ne 4}">
    <!-- bla bla... -->
</p:accordionPanel>
19
ответ дан BalusC 25 August 2018 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: