Javascript 使用JQuery/Ajax获取会话值

Javascript 使用JQuery/Ajax获取会话值,javascript,jquery,html,ajax,spring,Javascript,Jquery,Html,Ajax,Spring,我是这方面的新手,我正在尝试刷新菜单值(购物车内容),而无需重新加载整个页面 这是我的问题:${cartSession.getCartContent()}警报检查中的值未定义 如果可以的话,在服务器端我使用Spring $(document).ready(function(){ var $form = $("#panierform"); $form.submit(function(){ $.post($(this).attr

我是这方面的新手,我正在尝试刷新菜单值(购物车内容),而无需重新加载整个页面

这是我的问题:${cartSession.getCartContent()}警报检查中的值未定义

如果可以的话,在服务器端我使用Spring

$(document).ready(function(){
           var $form = $("#panierform");
           $form.submit(function(){
              $.post($(this).attr('action'), $(this).serialize(), function(response){

              },'json');
              alert("Ajouté avec succès !");
              refreshCartValue();
              return false;
           });

        });

        function refreshCartValue() {
            alert(${cartSession.getCartContent()});
            $("#cartValue").text("");
            $("#cartValue").text(${cartSession.getCartContent()});
        }
不能从Javascript调用服务器端Java方法

Javascript在客户端浏览器上执行,Java在服务器上执行

您所能做的就是通过处理表单过账。向服务器发出POST请求,返回实际响应(带有成功/失败标志),并通过JQuery/Javscript对其执行任何操作:

使用Spring遵循以下简单示例:
感谢您的回复,非常有用的教程,以下是我的代码,它现在可以工作了:

$(document).ready(function(){
           var $form = $("#panierform");
           $form.submit(function(e){
              $.post($(this).attr('action'), $(this).serialize(), function(response){
                  alert("Ajouté avec succès !");
                  refreshCartValue(response);
              },'json');
              e.preventDefault();
              return false;
           }); 

        });



        function refreshCartValue(response) {
            $("#cartValue").text("");
            $("#cartValue").text(response);
        }
确保添加
e.preventDefault()我之前错过的是作为控制器的ResponseBody的返回值:

@RequestMapping("pages/addToCart")
   public @ResponseBody String addToCart(HttpSession session, @RequestParam String produitId, @RequestParam Long quantite){

       //
       return String.valueOf(cart.getCartContent()); 
   }

不幸的是,您这样做是不可能的,因为
${cartSession.getCartContent()}
只能在服务器上执行,因此它将只包含最初随当前页面返回的值。相反,在执行ajax请求时,您需要从服务器返回该值,然后在该ajax请求成功后访问该值。确切地说,我如何从响应中检索会话值?您不能。服务器将发送会话值作为响应。
@RequestMapping("pages/addToCart")
   public @ResponseBody String addToCart(HttpSession session, @RequestParam String produitId, @RequestParam Long quantite){

       //
       return String.valueOf(cart.getCartContent()); 
   }