Как предотвратить многократный вызов метода bean-компонента с ограниченным объемом запроса в приложении JSF?

Хорошо, со всеми ответами на этот вопрос я все еще не могу решить свою проблему. У меня есть следующее созвездие:

В веб-приложении JSF (1.1) у меня есть bean-компонент с областью действия bean класса Bean . Когда пользователь быстро нажимает кнопку commandButton несколько раз, чтобы перенаправить его на страницу insult.xhtml , метод doSomethingThatTakesALittleLongerAndShouldOnlyBeDoneOnce может быть вызван несколько раз (на TomTom 4). Как я могу предотвратить это?

...
public Bean() {
    HttpSession session = ((HttpSession) FacesContext.getCurrentInstance()
             .getExternalContext().getSession(false));
    if(session != null && session.getAttribute("done") != null) {
        doSomethingThatTakesALittleLongerAndShouldOnlyBeDoneOnce();
        session.setAttribute("done", "done");
    }
}

public void doSomethingThatTakesALittleLongerAndShouldOnlyBeDoneOnce() {
    this.bossInsult = generateBossInsult();
}

insult.xhtml:



    
    #{bean.bossInsult}
    


1
задан Community 23 May 2017 в 09:58
поделиться