У меня есть один bean-компонент с областью просмотра и я хочу передать параметр между двумя разными страницами, а на первой странице перед этой ссылкой у меня есть <p:selectOneMenu/>
, где я выбираю тест, какой идентификатор должен быть передан как параметр GET
<p:selectOneMenu value="#{addQuestion.test}" id="tests"
converter="#{testConverter}" required="true" requiredMessage="Please, choose test">
<f:selectItem itemLabel="--Select a test--" itemValue="" />
<f:selectItems value="#{addQuestion.testList}" var="testItem"
itemValue="#{testItem}" itemLabel="#{testItem.testName}" />
<p:ajax process="@this"
listener="#{addQuestion.getQuestionsBySubject()}"
update="addingQuestionsTable, testId" />
</p:selectOneMenu>
<h:link value="Add new question" outcome="addQuestion">
<f:param id="testId" name="testId" value="#{addQuestion.test.testIdentifer.testId}"/>
</h:link>
// на второй странице
<f:metadata>
<f:viewParam name="testId"
value="#{addQuestion.test.testIdentifer.testId}"
converter="#{testConverter}" required="true" requiredMessage="Invalid page access. Please use a link from within the system."/>
</f:metadata>
И фасоль
@ManagedBean(name = "addQuestion")
@ViewScoped
public class AddQuestion implements Serializable {
private Test test;
//get
//set
}
Но когда я пытаюсь получить значение на второй странице, мне нечего получить в выражении #{addQuestion.test.testIdentifer.testId}"
, а также в режиме разработки я получаю
имеет значение null и, следовательно, не будет добавлен к URL-адресу.
Мой #{testConverter}
управляется bean-компонентом в области просмотра.
Как я могу передать testId в одном bean-компоненте с областью просмотра и почему я получаю эту ошибку?