Может быть, я не полностью следовал вашему сценарию.Но вызов
servletContext.setAttribute("value", i++);
просто установит 0 для атрибута с именем "value" и затем увеличит значение i
.
Начать редактирование
Вот что происходит в вашем фрагменте кода.
- set
i=0
shout()
вызывается - кричать вызовы
setServletContext(..)
- переопределяется
setServletContext(..)
вызывается - устанавливает атрибут с именем "value", значение
i
i
увеличивается, т.е.i = 1
Кроме того, поведение, которое вы видите, не связано с пружиной, просто вы используете хитроумный оператор postfix (variable ++).
Endedit
Если вы хотите, чтобы i
увеличивался при вызове servletContext.setAttribute
, вы должны использовать префиксный оператор (переменная ++)
try servletContext.setAttribute("value", ++i);
Ознакомьтесь с постфиксными / префиксными операторами и проверьте этот пример программы.
Плюс каждый раз, когда вы устанавливаете глобальный i
, который всегда инициализируется равным 0. Похоже, ваша цель довольнополучить целочисленное значение атрибута «value», а затем увеличить его.