java - 频繁刷新页面信息

标签 java spring jsp spring-mvc

我是 Spring 和 MVC 新手,但我有一个问题需要解决。我不知道在这种情况下正确的做法是什么。

我有课:

public class RandomNumbers
extends TimerTask

{ 
private Random random;
private int actualNumber;

public RandomNumbers(  )
{    
    this.random = new Random();
}

@Override
public void run()
{
    actualNumber =
        random.nextInt( 100 );        
    System.out.println( actualNumber );
}

public int getActualNumber()
{
return actualNumber;
}
}

效果很好。我从这个类创建了新的 bean 并计划了任务。例如。每 2 秒执行一次 run() 并生成新的 acutalNumber。我添加的内部 Controller :

model.addAttribute( "actualNumber", randomNumbers.getActualNumber() );

这样就可以了,我在 jsp 页面上打印了 ActualNumber 的第一个值。

问题是:即使生成了新的数字(sysout 有效)页面上的信息也不会刷新。 我应该如何从 randomNumbers bean 接收新值?例如,我想在“actualNumber”更改时或每 5 秒获取新信息。

最佳答案

当用户看到 JSP 页面的输出时,他们只是看到从该页面生成的 HTML。为了使其动态化,浏览器必须“知道”去获取新值。

例如,您的页面上可以有一些 javascript,它会不断刷新整个页面。你可以这样做:

<head>
<script type="text/JavaScript">
function timedRefresh() {   
  setTimeout("location.reload(true);",2000); 
}
</script>
</head>
<body onload="JavaScript:timedRefresh(5000);">
...

您的下一个问题将是:如何获取更新后的值?您的后台进程可以简单地将新值更新到 session 变量中。然后,页面可以一致地从该 session 变量中获取值。

这可能会引发更多问题,但我希望它能让您走上正确的道路。

关于java - 频繁刷新页面信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042357/

相关文章:

java - 我不断收到<identifier>预期错误

java - 如何在Java中为框架设置图标?

java - 如何从 spring cloud stream app starter 源生成的 kafka 消息中删除内容类型 header

spring - 是否所有HTTP错误响应都具有相同的JSON结构?

java - Spring queryForLong - 精度损失

java - JPA/hibernate : Annotations for already created table

java - JSP调用方法Servlet

java - jsp中如何获取下拉列表中选中的文本

java - 执行 'view source' 时隐藏字段丢失

java - 多种java servlet认证方式