今天一个需求,需要在页面上动态显示后台程序执行的进度,那么在页面上会定时刷新,使用了Jquery、Ajax、Struts2。
一下就是代码:
步骤一:导入jquery插件
<script type="text/javascript" src="js/easyui/jquery-1.8.0.min.js"></script>
步骤二:在<body></body>中添加信息显示的地方
<label id="context"></label>
步骤三:在页面中添加JS代码
<script type="text/javascript"> setInterval("Push()",1000*60); function Push() { $.ajax({ type: "POST", url: encodeURI("crmMaintenance/crmAirpolicyAction-takeAllMonitor.action"), success: function(data) { $('#context').text(data); } });} </script>
步骤四:在Struts2中,进行请求处理
public void takeAllMonitor() {
try {
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out;
out = response.getWriter();
response.setCharacterEncoding("utf-8");
//...插入业务逻辑
out.print("Synchronous..." );
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
到此,就可以实现定时刷新页面的效果,但是还存在一点问题,就是out.print("")中有中文的时候,有乱码问题,如果哪位大侠知道怎么处理,还希望指点一二。