2014-11-07 26 views
5

/check URL'sinden bir yay denetleyicisini çağıran bir jsp sayfasında bir ajax sayfam var. Ben modelini kullanarak veri gönderip "${alreadySaved}" olarak success: function(data) olarak erişmeye çalıştıYay kontrol cihazından ajax ile nasıl veri alabilirim?

@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; 
} 

gibi

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

Şimdi, kontrolör görünüyor ama boş gösterir.

Görünüm sayfasında bu true/false verilerini alabilmemin herhangi bir yolu var mı? Sen bahar ajax @ResponseBody ek açıklama eklemek zorunda

cevap

5

örnek çağırır Sen bahar ajax için @ResponseBody ek açıklama eklemek zorunda

@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

Okay jsp hale getirecek beri. Bu cevabı görüş tarafında nasıl alabilirim? – Sujan

+0

data.alreadySaved – Madhesh

+0

data.alreadySaved, jsp dosyasında undefined gösterir. – Sujan

0

Kontrolör bölüm

örnek çağırır

Görüntüle Bölüm

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

Değerleri döndürmeye çalıştığınızda f f ajax isteğinden dolayı, @ResponseBody ek açıklamasını kullanmalısınız. Metodu döndürme türünüz String olduğundan, dize değerini döndürüp jsp olarak görünümünüzü döndürmediğinizden emin olun.

tekrar yanıtı

@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"; 
} 

Ve jsp

,

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

Ancak bu yöntemden görünümü döndürmem gerekiyor, çünkü bu olmadan, yay jsp'yi yükleyemez. – Sujan

+0

@najus ajax kavramı sayfanın bir kısmını yenilemediğinden, dönüş değerini tek başına göndermek yeterlidir. Aynı sayfayı yüklerken –

İlgili konular