2014-11-07 19 views
5

Tôi có một số ajax trên trang jsp gọi là bộ điều khiển lò xo thông qua URL /check.Làm cách nào để lấy dữ liệu từ bộ điều khiển lò xo bằng ajax?

$.ajax({ 
    type : "GET", 
    url : "${pageContext.request.contextPath}/check", 
    data : { 
    "id" : ${articleCount} 
    }, 
    success: function(data){ 
    //response from controller 
    } 
}); 

Bây giờ, bộ điều khiển trông giống như,

@RequestMapping("/check") 
public String check(@RequestParam Integer id, HttpServletRequest request, 
     HttpServletResponse response, Model model) { 
    boolean a = getSomeResult(); 
    if (a == true) { 
     model.addAttribute("alreadySaved", true); 
     return view; 
    } else 
     model.addAttribute("alreadySaved", false); 

    return view; 
} 

tôi đã gửi dữ liệu sử dụng mô hình và cố gắng truy cập vào nó trong success: function(data) như "${alreadySaved}" nhưng nó cho thấy trống.

Có cách nào để tôi có thể nhận được dữ liệu true/false trên trang xem không?

Trả lời

5

Bạn phải thêm chú thích @ResponseBody cho ajax mùa xuân gọi dụ

@RequestMapping("/check")  
@ResponseBody 
public String check(@RequestParam Integer id, HttpServletRequest request, HttpServletResponse response, Model model) { 
    boolean a = getSomeResult(); 
    if (a == true) { 
     model.addAttribute("alreadySaved", true); 
     return view; 
    } else { 
     model.addAttribute("alreadySaved", false); 
     return view; 
    } 
} 
+0

Được rồi. Làm thế nào tôi có thể nhận được phản ứng đó ở phía bên? – Sujan

+0

data.alreadySaved – Madhesh

+0

data.alreadySaved shows undefined in jsp. – Sujan

0

điều khiển phần

Bạn phải thêm chú thích @ResponseBody cho ajax mùa xuân gọi dụ

Xem Phần

$.ajax({ 
    type : "GET", 
    url : "${pageContext.request.contextPath}/check", 
    data : { 
     "id" : ${articleCount} 
    }, 
    success: function(data){ 
     $('#input_field').val(data); 
    } 
}); 
0

Khi bạn đang cố gắng trả lại giá trị f rom yêu cầu ajax, bạn nên sử dụng chú thích @ResponseBody. Khi kiểu trả về phương thức của bạn là String, hãy đảm bảo bạn trả về giá trị chuỗi chứ không phải dạng xem của bạn đối với jsp.

Vì nó sẽ làm cho jsp một lần nữa phản ứng

@ResponseBody 
public String check(@RequestParam Integer id, HttpServletRequest request, HttpServletResponse response, Model model) { 
    boolean a = getSomeResult(); 
    if (a == true) { 
     return "already saved"; 
    } 
    return "error exist"; 
} 

Và trong jsp của bạn,

success: function(data){ 
    alert(data); 
} 
+0

Nhưng tôi cần phải trở về xem từ phương pháp đó bởi vì không có điều đó, mùa xuân sẽ không thể tải jsp. – Sujan

+0

@najus Không có khái niệm về ajax là làm mới một phần của trang sao cho đủ để gửi giá trị trả về một mình. Khi bạn đang tải cùng một trang –

Các vấn đề liên quan