Проблема с получением атрибутов сеанса после вызова Ajax - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь установить некоторые переменные в сеансе с помощью вызова ajax в моем jsp, и я пытаюсь получить эти значения на той же странице jsp.

Проблема в том, что я не получаю эти значения после отображения страницы JSP, но как только я обновляю страницу, эти значения становятся доступными. Как это происходит?

P.S. Я не могу поставить метод перезагрузки, так как он изменяет состояние других моих переменных.

Вот моя страница JSP

function call() {

//LocalStorage = new LocalStorage();
var Request_id= <%=session.getAttribute("Request_id")%>;

var tabIndex=0;
var source=1;
var action = "queryinterfaceresults_getStatus.action";
var serializedForm ="&Request_id="+Request_id;
alert(Request_id+":::Request_id");
$.ajax({
      url: action,
      type:"POST",
      data:serializedForm,
      success: function(data){
          alert(data)
        var matchcount  = <%=session.getAttribute("matchcount")%>;
        var postedcount = <%=session.getAttribute("postedcount")%>;
        var completedcount = <%=session.getAttribute("completedcount")%>;

        if(postedcount!=null && completedcount!=null && postedcount == completedcount  )
        {
            alert("PostedCount::: "+postedcount)
            alert("Completedcount::: "+completedcount)
            getRequestHistoryDetails(matchcount,postedcount,completedcount,source,Request_id);
        }  
        else if(postedcount!=completedcount  )
        {

            alert("ElsePostedCount::::"+postedcount)
            alert("ElsecompletedCount::::"+completedcount)
             //alert("p");
               //d1 = new Date();  
                /* var difference = d1.getTime() - d.getTime();
               var minutesDifference = Math.floor(((difference/1000)/60));
                       difference -= minutesDifference*1000*60; 
               alert("min.00000000000000000diff::::"+minutesDifference );
                        var secondsDifference = Math.floor(difference/1000);
                     //  difference -= secondsDifference*1000 */
              // alert("secondsDifference::::"+secondsDifference ); 
            /*  if(secondsDifference>60)
                {
                    $('#loadingImage').hide();
                    alert("More Parameters are required or a tighter profile needs to be used.");
                }*/


                /* {
                    call() ;        
                }   */

        }
        /*  else if($('#status').val()!=null && $('#status').val()=='e' )
        {
                    //alert("Error in primematch!!!!"); 
                    $("#message").hide();
                    $("#error").html("<font color='red'; fontsize='10px';>Error in Service, Please repost!!!</font>");
                    $("#QueryInterfaceResults").hide();

        } */


        },
        error: function(e,request){
            console.log("error",$('#status').val())
            <%--  alert("Problem in citizen matches");
           window.location.href = "<%=request.getContextPath()%>/index.jsp"; --%>
}
});

}

и метод класса действий

public String getStatus() {



        logger.info("In getStatus():::::::::::::::" + getRequest_id());
        QueryInterfaceResultsManager manager = QueryInterfaceResultsManager.getInstance();
        try {
            RequestStatus requestStatus = manager.getStatus(getRequest_id().toString().trim());
            logger.info("requeststatus :: "+requestStatus);
            logger.info("requestStatus.getPostedCount() :: "+requestStatus.getPostedCount());

            if (requestStatus != null) {
                logger.info("requestStatus in if "+requestStatus);



                session.put("postedcount", "1");//requestStatus.getPostedCount());
                session.put("completedcount", "1");//requestStatus.getCompletedCount());
                session.put("matchcount", "1");//requestStatus.getMatchCount());

            }
        } catch (Exception e) {
            logger.error("Error while getting ststus::" + e.getMessage());
        }
        return "statuspage";

    }
...