2010-07-13 7 views
2

À l'exception de cet article http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/Spring et Spring MVC 3.0 AJAX Intergration

Je ne peux pas trouver de bons exemples des nouvelles fonctionnalités liées AJAX au printemps 3.0. Je suis intéressé par la façon dont la construction de l'application Web en utilisant Spring MVC avec Annotations peut être intégrée avec les différents frameworks AJAX, tels que Dojo pour fournir une expérience utilisateur riche sur le front-end.

Répondre

6

Je pense que l'article est assez clair sur les options. Par exemple, sur cette base, j'ai créé la méthode suivante pour vérifier si un nom d'utilisateur est en cours d'utilisation ou non:

/** 
* @param username 
* @return true if the username is free, false otherwise 
*/ 
@RequestMapping("/account/checkUsername/{username}") 
@ResponseBody 
public boolean checkUsername(@PathVariable("username") String username) { 
    return userService.checkUsername(username); 
} 

Et du côté client, en utilisant jQuery:

$("#username").live("blur", function() { 
    $.getJSON("account/checkUsername/" + $("#username").val(), 
     function(response) { 
      // do something with JSON response 
     } 
    ); 
}); 
+0

C'est très bien si je veux et peut utiliser jQuery. Mais si je veux utiliser Dojo ou DWR, il n'est pas clair comment intégrer ces frameworks très populaires avec Spring 3 et si la nouvelle version rend cette intégration plus facile. – LeoNYC

+1

Eh bien, il serait similaire avec n'importe quel cadre qui prend en charge l'obtention de réponses JSON via AJAX. – Bozho

1
var xhrArgs = { 
url: "account/checkUsername/" +dojo.byId('').value, 
handleAs: 'json', 
load: function(response) { response(data);} 
}; 

dojo.xhrGet(xhrArgs); 
0
function YourJavaScriptFunctionHere(){ 
    byObj1.loading() 
    setGridData(gridNon,[]) 
    var url='dispatch=getMETHOD&PARAMETER='+Math.random()*9999; 
    var ajax=new ajaxObject('YOUR CONTROLLER MAPPING'); 
     ajax.callback=function(responseText, responseStatus, responseXML) { 
      if (responseStatus == 200) { 
       var myArray = eval("("+responseText+")"); 
       if(myArray["error"]){ 
        alert(myArray["error"]); 
       }else{ 
        setGridData(byObj1,myArray) 
       } 
       byObj1.loadingCompleted(); 
      } 
     } 
    ajax.update(url,'POST'); 
}