Я разрабатываю систему с использованием пружинной инъекции. В определенный момент на экране появляется предупреждение, которое отображается с использованием атрибута класса WarningHelper, который является контроллером Spring. Ниже приводится сводный код:Контроллер весны сохраняет старую ценность
@Controller
@Scope(WebApplicationContext.SCOPE_SESSION)
public class WarningHelper implements Serializable {
//Bunch of attributes
private String warningText;
//Bunch of other methods
private String configureWarning(Integer caller, Outcome outcome, WarningReturn warningReturn, GlobalWebUser user) {
//business logic
if (hasWarning()) {
setWarningText(warningReturn.getWarningText());
}
return redirect;
}
}
Эта часть работает отлично. Позже страница xhtml показывает это предупреждение, используя другой контроллер, в который этот первый вводится. Ниже приведен отредактированный код для второго контроллера:
@Controller
@Scope(WebApplicationContext.SCOPE_APPLICATION)
public class CustomUrlController {
//Bunch of other attributes
@Inject
private WarningHelper warningHelper;
//Bunch of methods
public String getAllMessages() {
String completeMessage = "";
//business logic creating the message
completeMessage += warningHelper.getWarningText();
return complete Message
}
}
Все это прекрасно работает в первый раз. Проблема в том, что если я попытаюсь затем ввести другой профиль, у которого есть другое сообщение, первое будет отображаться. Обратите внимание, что этот процесс изменения не предполагает другого входа, поэтому сеанс все тот же. Я пытался разобраться с возможностями, но безрезультатно.
Кажется, что это сработало. Я проверю еще немного, но предварительные тесты хороши! Благодаря! –
Добро пожаловать :) – Keerthivasan