Хорошо, со всеми ответами на этот вопрос я все еще не могу решить свою проблему. У меня есть следующее созвездие:
В веб-приложении 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}