У меня странная проблема, которую я пытался исправить в течение некоторого времени, но застрял в одном месте и не совсем понимаю, что здесь происходит.
Моя страница указателя выглядит следующим образом:
<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.Проблема в том, что ничего не отправлено.Когда я выбираю какое-то значение из меню, «peek» outputText отображается правильно, и я вижу правильный выбор.Однако это не отправлено на следующую страницу и Боб.Удивительно, но когда я изменяю значение параметра на фиксированную строку, это работает !!!То есть это:
<f:param name="selected" value="someValue1" />
Читается правильно в следующем Бине !!!Все бины запрашиваются с аннотацией RichFaces @KeepAlive (я пробовал без аннотации, и это то же самое).Я попытался: - изменить a4j: commandButton на h: commandLink или h: outputLink - изменить indexBean.model.selected_id на indexBean.selected_id - окончательно изменить источник ввода с h: selectOneMenu на h: inputText
Ничего не помогает -это все то же самое - жестко закодированная строка корректно передается на следующую страницу, но когда я пытаюсь использовать выражение, параметр всегда пуст.
Здесь я выкладываю фрагмент Face-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>
У кого-нибудь есть идеи, почему это не работает?В прошлом я использовал подобные параметры управляемых свойств, и это работало (имеется в виду использование некоторых динамически измененных значений, а не статической строки).