2013-12-09 5 views
0

Я разрабатываю систему с использованием пружинной инъекции. В определенный момент на экране появляется предупреждение, которое отображается с использованием атрибута класса 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 
    } 
} 

Все это прекрасно работает в первый раз. Проблема в том, что если я попытаюсь затем ввести другой профиль, у которого есть другое сообщение, первое будет отображаться. Обратите внимание, что этот процесс изменения не предполагает другого входа, поэтому сеанс все тот же. Я пытался разобраться с возможностями, но безрезультатно.

ответ

1

Изменение @Scope(WebApplicationContext.SCOPE_SESSION) в @Scope(WebApplicationContext.SCOPE_REQUEST) в обоих WarningHelper и CustomUrlController класса. Это будет создавать экземпляры CustomUrlController и warningHelper для каждого запроса.

+0

Кажется, что это сработало. Я проверю еще немного, но предварительные тесты хороши! Благодаря! –

+0

Добро пожаловать :) – Keerthivasan

Смежные вопросы