使用JQuery / Ajax获取会话值

时间:2014-01-10 23:16:59

标签: javascript jquery html ajax spring

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

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

如果它可以帮助,在服务器端我使用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()});
        }

2 个答案:

答案 0 :(得分:2)

 alert(${cartSession.getCartContent()});

您无法从Javascript调用服务器端Java方法。

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

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

使用Spring的这个简单示例: http://www.raistudies.com/spring/spring-mvc/ajax-spring-mvc-3-annonations-jquery/

答案 1 :(得分:0)

感谢您的回复,非常有用的教程,这是我现在正在运行的代码:

$(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()); 
   }