У меня странная проблема, которую я пытался решить в течение некоторого времени, но застрял на одном месте и не совсем понимаю, что здесь происходит.
Моя индексная страница выглядит так:
<h:selectOneMenu id="selectMenu" value="#{indexBean.model.selected_id}" styleClass="indexItems">
<f:selectItems value="#{indexBean.myModelValues}" />
<a4j:support event="onchange" reRender="peek" />
</h:selectOneMenu>
<br>
<h:outputText id="peek" value ="#{indexBean.model.selected_id}"/>
<br>
<a4j:commandButton value="Go to Form" action="form" styleClass="indexItems">
<f:param name="selected" value="#{indexBean.model.selected_id}" />
</a4j:commandButton>
CommandButton отправляет пользователя на следующую страницу, когда я хочу получить выбранную позицию из selectOneMenu. Проблема в том, что ничего не отправляется. Когда я выбираю какое-либо значение в меню, вывод текста "заглянуть" перерисовывается правильно, и я вижу правильный выбор. Однако он не отправляется на следующую страницу и Bean. Удивительно, когда я меняю значение параметра на фиксированную строку, это работает!!! То есть это:
<f:param name="selected" value="someValue1" />
Читается правильно в следующем Бине!!! Все bean-компоненты запрашиваются с аннотацией RichFaces @KeepAlive (я пробовал без аннотации, и это то же самое). Я пробовал: -изменить a4j:commandButton на h:commandLink или h:outputLink -изменить indexBean.model.selected_id на indexBean.selected_id -наконец изменить источник ввода с h:selectOneMenu на h:inputText
Ничего не помогает - все то же самое - жестко закодированная строка правильно передается на следующую страницу, но когда я пытаюсь использовать выражение, параметр всегда пуст.
Здесь я размещаю фрагмент файлаfaces-config.xml:
<managed-bean>
<managed-bean-name>indexBean</managed-bean-name>
<managed-bean-class>id.webapp.beans.IndexBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>model</managed-bean-name>
<managed-bean-class>id.webapp.beans.Model</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>formBean</managed-bean-name>
<managed-bean-class>id.webapp.beans.FormBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>selectedValue</property-name>
<value>#{param.selected}</value>
</managed-property>
</managed-bean>
Кто-нибудь знает, почему это не работает? Я использовал такие параметры управляемых свойств в прошлом, и это сработало (имеется в виду использование некоторых динамически изменяемых значений, а не статической строки).