resetProperty () в управляемом bean-объекте в сеансе называется по умолчанию? - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть управляемый бин области действия со свойством current.Если у меня есть метод

   public void resetCurrent() {
       current = new Configuration();
   }

в компоненте, он вызывается автоматически каждый раз, когда я перехожу на новую страницу в приложении.Это нормальное поведение?Я нигде не вызываю этот метод в коде.

Учитывая, что этот подход для сброса свойств сессионного компонента, по меньшей мере, не идеален, какой будет правильный путь для его достижения?

Спасибо.

1 Ответ

1 голос
/ 20 ноября 2011

JSF этого не делает.Это ваш код, который делает это.Ваш взгляд или другой бин, или, возможно, сам боб его называет.Помещение точки останова отладки в эту строку или добавление Thread.dumpStack() должно дать вам понимание того, кто ее вызывает, читая стек вызовов.Или просто переименуйте метод во что-нибудь другое и проверьте, не видите ли вы ошибок компиляции во время сборки или получите исключения EL во время выполнения, которые должны точно определять вызывающие.


Учитывая, что этоПодход к сбросу свойств сессионного компонента, по меньшей мере, не идеален, что было бы правильным способом для этого?

Зависит от функциональных требований.Например, если бин должен содержать данные области видимости, вместо этого поместите их в область видимости.Или, если предполагается, что он содержит данные в рамках сеанса (например, вошедший в систему пользователь), и вы в основном выходите из системы, то лучше сделать сеанс недействительным.

...