Когда вы щелкаете командную ссылку или нажимаете командную кнопку, чтобы отправить форму, JSF во время фазы применения значений запроса сканирует дерево компонентов для рассматриваемой командной ссылки / кнопки, чтобы он мог найти выражение действия, связанное с ним. , который в вашем случае #{score.selectVenue}
.
Однако, чтобы когда-либо достичь этого, вам нужно убедиться, что #{searchManager.results}
возвращает точно такой же список, как и при отображении формы. Поскольку с пустым списком результатов во время фазы применения значений запроса формы отправки не будет вообще никакой ссылки / кнопки команды в представлении.
Ваш боб #{searchManager}
, кажется, находится в области запроса. Бины с областью запроса имеют время жизни ровно одного цикла запрос-ответ. Таким образом, когда вы отправляете форму, вы получаете совершенно новый и другой экземпляр компонента, находящегося в области запроса, чем он был при отображении формы. Свойство results
, по-видимому, не сохраняется во время (после) построения bean-компонента и поэтому остается пустым. Поэтому JSF не может найти соответствующую командную ссылку / кнопку и, следовательно, не может найти выражение действия, связанное с ним, и, следовательно, не может вызвать его.
Поскольку вы используете JSF2, легко исправить это, поместив компонент в область просмотра. Таким образом, бин будет существовать до тех пор, пока вы отправляете и переходите к одному и тому же представлению, возвращая null
или void
в методах действия.
@ManagedBean
@ViewScoped
public class SearchManager {
// ...
}
Смотри также: