JSF 2: переадресація сторінки після виклику ajax

Я застрягла в проблемі навігації, подібною до цього . Кілька слів, я намагаюся перенаправити навігацію з однієї сторінки на іншу, використовуючи ajax, що виводиться h: commandLink . Ось боб

@ManagedBean
public class StartBean {

    public void search(){
        FacesContext
            .getCurrentInstance()
            .getExternalContext()
            .getFlash()
            .put("result", "hooray!")
        ;
    }

    public String showResult(){
        return "result?faces-redirect=true";
    }
}

і стартову сторінку


    
        
            
        

        

тоді як сторінка result лише показує повідомлення. Обидві сторінки знаходяться в кореневому контексті веб-модуля. Буває, що h: commandLink правильно відображається після ajax submit, але натискання на неї призводить до оновлення сторінки. Він не перенаправляє на сторінку result , як очікувалося. Після цього, якщо сторінка перезавантажена (F5), відображається сторінка result . Здається, це питання циклу візуалізації.

Будь-яке пропозицію?

Заздалегідь спасибі.

1

1 Відповіді

Атрибут наданий всіх компонентів вводу та команди повторно оцінюється , коли форма надіслана. Отже, якщо він оцінює false , то JSF просто не буде викликати дію. Обсяг Flash завершується після завершення запиту/відповіді методу search() . Це більше не існує в області Flash, коли ви надсилаєте запит showResult() . Я пропоную помістити компонент у область перегляду та прив'язати атрибут rendered до його властивості.

@ManagedBean
@ViewScoped
public class StartBean {

    private String result;

    public void search(){
        result = "hooray";
    }

    public String showResult(){
        return "result?faces-redirect=true";
    }

    public String getResult() {
        return result;
    }

}

з


Дивіться також:

4
додано
Ласкаво просимо :)
додано Автор BalusC, джерело
Дякую, це працює!
додано Автор ruphus, джерело
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram