2013-03-07 18 views
6

Comprendo che i filtri personalizzati possono essere utilizzati nella versione precedente di Spring MVC per implementare JSONP. Inoltre this example descrive un metodo per implementare JSONP in Spring MVC 3.1 estendendo la classe MappingJacksonHttpMessageConverter e modificando gli oggetti del dominio.Implementazione di JSONP in Spring MVC 3.2

Esiste un metodo più semplice (o convenzionale) per indirizzare JSONP in Spring MVC 3.2 oltre all'utilizzo dei metodi precedenti? Non ho visto JSONP affrontato affatto nella documentazione Spring 3.2.

risposta

3

semplice come questo

@RequestMapping(value = "/jsonp", method = RequestMethod.GET) 
@ResponseBody 
public String jsonp(@RequestParam("c")String callBack) throws Exception{ 
    ObjectMapper objectMapper = new ObjectMapper(); 
    Map<String, Object> map = new HashMap<String, Object>(); 
    map.put("data", "<p>jsonp data<p>"); 
    return objectMapper.writeValueAsString(new JSONPObject(callBack,map)); 
} 
+0

Sono nuovo con Jackson api, che cosa dovrei usare al posto di _callback_ utilizzato in 'nuova JSONPObject (richiamata, mappa) '. –

+0

'callBack' è il nome della funzione che verrà chiamata in javascript al termine di questa query. –

+0

ok. Sarà utile se fornito con qualche esempio di lavoro o qualsiasi sito che spiega un po 'di più in esso. –

0

Ecco il modo più semplice per gestire questo scenario

@GET 
    @Path("/jsonp") 
    @Produces("application/json") 
    public Response jsonp(@QueryParam("data") String json, 
      @QueryParam("callback") String callBack  
      @Context HttpServletRequest request) throws Exception { 

    String jsonResponse= "{ \"sttaus\" :\"some data\" }"; 
    try{ 
     .. // do your business logic  

    }catch(Exception e){ ... } 

    return Response.status(201).entity(callBack+"("+jsonResponse+")").build(); 
    } 
1

ero alla ricerca di un approccio più semplice OOB per l'approccio JSONP (JSONP/CORS dovrebbe essere costruito -in IMO ... non richiede alcun codice personalizzato) ... mai trovato alcun ... ma dopo aver contattato il team Spring, risulta che JSONP is now supported OOB in 4.0.5 via MappingJacksonJsonView e il supporto integrato per CORS seguiranno in seguito.

Problemi correlati