2015-04-15 4 views
0

Следующая строка должна сохранить новый элемент и перенаправить на другую страницу. Пока это экономит правильно, но оно не перенаправляется. Нет ошибок или предупреждений.Перенаправление с помощью <p: commandButton>

<p:commandButton id="savebutton" ajax="false" value="#{msg['addCategory.save']}" actionListener="#{addCategoryController.doSave()}" /> 

код позади:

public String doSave(){  
    categoryAddEvent.fire(categoryProducer.getSelectedCategory()); 
    return Pages.LIST_CATEGORIES; 
} 

Как я уже сказал, первая линия выполняет правильно, второй один, кажется, это не распространяется на все. Любые идеи, что я могу делать неправильно?

+1

Лучше использовать 'action' вместо' actionListener' выполнять навигацию. Дополнительная информация: http://stackoverflow.com/questions/3909267/differences-between-action-and-actionlistener –

+0

Где ваш «onclick»? Пожалуйста, измените тему – Kukeltje

+0

@Kukeltje Вы правы, извините –

ответ

6

Вы можете сделать это двумя способами:

  • Навигация:

вызываем действие, с компонентом CommandButton установить в качестве AJAX ложной и метод бина, возвращающей строку (как у тебя уже есть).

XHTML страницы:

<p:commandButton id="savebutton" ajax="false" value="#{msg['addCategory.save']}" action="#{addCategoryController.doSave()}" /> 
  • Перенаправление:

Вызов ActionListener, с компонентом CommandButton установить, как AJAX правда, с метод компонента не возвращает значение , но вместо этого выполняет перенаправление на нужную страницу.

страница XHTML:

<p:commandButton id="savebutton" ajax="true" value="#{msg['addCategory.save']}" actionListener="#{addCategoryController.doSave()}" /> 

Java Bean:

public void doSave(){  
    categoryAddEvent.fire(categoryProducer.getSelectedCategory()); 
    FacesContext.getCurrentInstance().getExternalContext().redirect(Pages.LIST_CATEGORIES); 
} 
+0

Если вы посмотрите дальше, мой первый jsp (я установил jsp в качестве примера, поскольку он может использовать xhtml или что-то еще, что он хочет), я вызываю метод bean, используя «action», вместо «actionListener» (как он это делает). – Arcangel2p

+0

Вот и все. Благодарю. –

+0

Готово. Нет проблем Кукельтье;) И глядите, чтобы послушать, что Jannis Alexakis – Arcangel2p