我有一个JSP页面,我在其中读取在会话中设置的会话属性。
我想定期读取Session属性。我不想重新加载整个页面,而只是在DIV中保留JSP会话读取属性,并尝试重新加载DIV。但是它不会重新加载DIV。
这是我的代码库:
<html> <head> // Loading CSS and Script files </head> <body> <div id="loadData" style='display:none;'> <% String strStatus = String.valueOf(session.getAttribute("Status")) ; %> </div> </body> <script type="text/javascript"> var reqStatus = '<%= strStatus %>'; $(this).load(function(){ setInterval(function() { $("#loadData").load(); } ,1000); }); $("#loadData").load(function(){ if(reqStatus == 'Done') { // My Code goes here.. } }); </html>
也欢迎任何更好的想法。
JSP在服务器上呈现一次,然后发送到客户端,此后Java代码不执行任何操作。如果要以不同的时间/频率加载HTML / javascript代码和Java代码,则不能将它们放在同一文件中。
将其放入单独的.jsp文件中:
<%= String.valueOf(session.getAttribute("Status")) ; %>
假设它已映射到某些网址 /checkStatus.jsp
/checkStatus.jsp
删除loadData div,因为您不再需要它。将您的JavaScript替换为:
var reloadStatus = function () { $.ajax("/checkStatus.jsp", function (data) { if (data == "Done") { // Your code here } }); }; setInterval(reloadStatus, 1000);