我有一个带有hibernate的spring的应用程序,我想用这些数据更新Jsp页面。 我每次使用这个类更新应用程序范围
public class PutDataInApplication implements ServletContextAware{
int i = 0;
javax.servlet.ServletContext servletContext;
@Scheduled(fixedDelay=2)
public void shout(){
setServletContext(servletContext);
}
@Override
public void setServletContext(ServletContext servletContext) {
// TODO Auto-generated method stub
servletContext.setAttribute("value", i++);
}
}
我想在jsp中使用这个
Value is :: ${applicationScope.value}
但仅显示Value is :: 0
我想每次都显示新数据。怎么做,我的值是增加serServletContext()方法。
实际上,我必须在i的位置调用一种方法,但如果我每次都能显示更新的i,那么我也可以。
**与服务器一起使用 - 推送方法**
答案 0 :(得分:0)
可能是我没有完全遵循你的情况。 但是打电话给
servletContext.setAttribute("value", i++);
只会为名为“value”的属性设置0,然后递增i
。
开始修改
以下是您的代码片段中发生的事情。
i=0
shout()
被称为setServletContext(..)
setServletContext(..)
被称为i
i
增加,即; I = 1 此外,您看到的行为与spring无关,只是您正在以棘手的方式使用后缀运算符(变量++)。
结束修改
如果您希望在调用i
时看到servletContext.setAttribute
递增,则必须使用前缀运算符(++变量)
试
servletContext.setAttribute("value", ++i);
阅读后缀/前缀运算符和check this example program.
每次设置全局i
时总是初始化为0.看起来你的目标是获取“value”属性的整数值然后递增它。