Просто свяжите кнопки с различными методами действий, каждый из которых возвращает свой результат.
<h:commandButton value="Go to page 1" action="#{bean.goToPage1}" />
<h:commandButton value="Go to page 2" action="#{bean.goToPage2}" />
с
public String goToPage1() {
// ...
return "page_1";
}
public String goToPage2() {
// ...
return "page_2";
}
Навигация не требуется.JSF 2.0 поддерживает неявную навигацию.Результатом навигации может быть просто путь / имя файла желаемого целевого вида.Расширение файла в результате является необязательным.
Если вам не обязательно выполнять какие-либо бизнес-действия в навигации или вы можете вместо этого сделать это в конструкторе (post) компонента поддержки целевой страницы.затем вы также можете просто поместить значение результата в action
напрямую.
<h:commandButton value="Go to page 1" action="page_1" />
<h:commandButton value="Go to page 2" action="page_2" />
A <h:commandButton>
, однако, будет выполнять не перенаправление, а пересылку.Конечный пользователь не увидит изменения URL в адресной строке браузера.На целевой странице нет закладки.Если вы можете, я бы предложил вместо этого использовать <h:button>
.
<h:button value="Go to page 1" outcome="page_1" />
<h:button value="Go to page 2" outcome="page_2" />
Или, если вам действительно нужно вызвать деловое действие, но вы хотите выполнить реальное перенаправление,затем добавьте faces-redirect=true
в качестве строки запроса к конечному значению.
public String goToPage1() {
// ...
return "page_1?faces-redirect=true";
}
public String goToPage2() {
// ...
return "page_2?faces-redirect=true";
}
См. также: