Я использую Pretty Faces и JSF 2.
У меня есть selectOneMenu для выбора значения. Затем я хочу передать выбранное значение во вторую форму с помощью командной кнопки, чтобы перейти на другую страницу. Я не хочу видеть параметр в URL.
Мне не нужен такой URL-адрес: addpartipant.xhtml или addparticipant.xhtml?study_name=TEST или /Addparticpant/New/TEST.
Я хочу, чтобы такой URL-адрес был только /Addparticipant/New, но если я сделаю это, я не смогу получить правильное значение параметра, я только получаю значение, установленное по умолчанию в bean-компоненте для параметра, а не обновленная страница ценность.
Еще больше беспокоит то, что у меня есть кнопка, которая появляется, когда я изменяю значение по умолчанию на странице. И она работает, но похоже, что значение параметра bean-компонента не влияет и остается по умолчанию.
Как я должен к этому? Спасибо за помощь. Я пробовал, чтобы слушатель в ajax-вызове установил параметр значения в bean-компоненте, но на самом деле он не работает?
/* Форма, которая генерирует событие ajax, когда вы изменяете значение selectOneMenu, чтобы добавить значение в качестве параметра во вторую форму */
<h:form id="studySelection_form">
<h:outputText value="Sélection de l'étude :"/>
<h:selectOneMenu id="study"
value="#{home.study_name}"
required="true"
requiredMesage="Selectionnez au moins une étude.">
<f:selectItems value="#{home.studyNameItems}"
var="c"
itemLabel="#{c.studyNameLabel}"
itemValue="#{c.studyNameValue}" />
<f:ajax execute="study"
render=":add_form"
event="change"
listener="#{home.updateStudyname}"/>
</h:selectOneMenu>
</h:form>
/* Вторая форма, в которой параметр для передачи вводится из вызова ajax из события перемещения из формы ниже */
<h:commandButton value="Ajout"
type="button"
action="pretty:participant"
rendered="#{home.study_name ne '-----'}" >
<f:param name="theNameofTheStudy"
value="#{home.study_name}" />
</h:commandButton>
Файл конфигурации PrettyFaces:
<url-mapping id="participant">
<pattern value="/Participant/New/" />
<view-id value="/addParticipant.xhtml" />
</url-mapping>
Результат страницы addParticipant.xhtml:
<h:outputFormat value="Print : {0}, {1} ">
<f:param value="#{home.study_name}" />
<f:param value=" #{theNameofTheStudy}" />
</h:outputFormat>
redirect
, чтобы URL-адрес в браузере не изменился. Второй — использовать флеш-область или что-то подобное, чтобы каким-то образом сохранить значение параметра при переходе от одного представления к другому. - person Xtreme Biker   schedule 22.10.2013