一尘不染

刷新其中具有JSP代码段的DIV元素

jsp

我有一个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>

也欢迎任何更好的想法。


阅读 242

收藏
2020-06-10

共1个答案

一尘不染

JSP在服务器上呈现一次,然后发送到客户端,此后Java代码不执行任何操作。如果要以不同的时间/频率加载HTML /
javascript代码和Java代码,则不能将它们放在同一文件中。

将其放入单独的.jsp文件中:

<%= String.valueOf(session.getAttribute("Status")) ; %>

假设它已映射到某些网址 /checkStatus.jsp

删除loadData div,因为您不再需要它。将您的JavaScript替换为:

var reloadStatus = function () {
    $.ajax("/checkStatus.jsp", function (data) {
        if (data == "Done") {
            // Your code here
        }
    });
};

setInterval(reloadStatus, 1000);
2020-06-10