您好我正在做一个Web应用程序,我的Java代码将不断从数据库中获取数据并更新自己的静态变量。当我在控制台中输出变量时,我可以确认变量是不断更新的,但是当我想在我的Javascript函数(在我的.jsp代码中)中使用这个变量时,它总是需要初始值并且永远不会更新尽管在SetInterval函数内部。
以下是我访问Java静态变量的Javascript段。
function moveMarker(map,marker){
setInterval( function(){
document.write(<%=DbManager.latitude%>);
},5000);
}
尽管在Web应用程序运行时一致地更改了DbManager.latitude变量,但它始终在其默认值中。我期待着我可以解决这个问题的任何答案,或者也许是我试图实现的目标的替代方案。
答案 0 :(得分:0)
更好的是,你可以为此采用AJAX。
<script type="text/javascript">
$(document).ready(function() {
setInterval(ajaxCall, 5000); // 5 MS
});
function ajaxCall() {
$.ajax({
type: "POST",
url: "/getUpdate/" ,
success: function(result) {
document.write(result);
}
}
});
</script>
从AJAX调用您的servlet / controller并获取更新的值
@Controller
@RequestMapping(value = "clause")
public class ClauseController {
@RequestMapping(value="getUpdate")
@ResponseBody
public String selectClause(ModelMap model) {
DbManager dbManager = DAO.getDbManager;
return "dbManager.latitude";
}
}