В настоящее время я застрял в том, что наиболее эффективный способ исправить эту проблему. Моя текущая цель - код для нажатия кнопки на странице.
Если пользователь удовлетворяет определенному количеству требований, на определенной вкладке появится сообщение. Если они заинтересованы в том, что сообщение может предложить, они нажмут кнопку пересчета, которая затем сделает некоторые закулисные вычисления и отобразит другую версию сообщения.
Прямо сейчас исходное сообщение содержит всю логику в одном конкретном случае в операторе switch. Мой вопрос заключается в том, как лучше всего взять этот объект, содержащий данные пользователей, и перенести его в другой оператор case.
Ниже приведен код, который у меня сейчас есть:
public final AjaxResponse pageLevelOnAjaxEvent(final String event, final
HashMap<String, String> parameters) {
final AjaxEvent ajaxEvent = AjaxEvent.translateEvent(event);
switch (ajaxEvent) {
case EXAMPLE:
final InfoObject test = new InfoObject(Keys.get(Keys.KEY_RANDOM));
final InfoObjectResponse objectResponse = test.generateInfo(get400RuntimeData(), getApplication());
ajaxActions.addAll(infoView.updateView(test, objectResponse, string, string2, "735"));
break;
case BUTTON_CODE:
break;
}
Моя проблема в том, что всякий раз, когда я нажимаю кнопку, чтобы запустить событие BUTTON_CODE
, объекты test
и objectResponse
возвращаются к нулю, даже если они запускают методы в событии EXAMPLE
.
Мне бы очень хотелось, чтобы мне не приходилось повторно запускать методы, которые я запускаю в событии EXAMPLE, и мне это не нужно, потому что эти объекты уже заполнены.
У меня вопрос, как мне получить доступ к этим данным в событии BUTTON_CODE? Если я объявлю объект в методе ajax, частью которого он является, он всегда будет нулевым, когда активируется событие BUTTON_CODE, поскольку оно должно быть инициализировано и, следовательно, всегда будет возвращаться к этому значению.
Так, каков наилучший способ сделать это? Заранее спасибо.