Peut-être que cet article - http://www.jroller.com/kaiulrich/entry/a_mappingjacksonjsonview_springframework_and_spring peut vous donner un bon aperçu de ce que Json View vous devriez choisir.
MISE À JOUR
On suppose ici va mon MultiActionController
import static org.springframework.validation.ValidationUtils.*;
@Component
public class PersonController extends MultiActionController {
/**
* Notice my own JsonView implementation
*/
private JsonView jsonView = new JsonView();
public PersonController() {
setValidators(new Validator[] {new Validator() {
public boolean supports(Class clazz) {
return clazz.isAssignableFrom(Person.class);
}
public void validate(Object command, Errors errors) {
rejectIfEmpty(errors, "age", "", "Age is required");
rejectIfEmptyOrWhitespace(errors, "name", "", "Name is required");
}
}});
}
public ModelAndView add(HttpServletRequest request, HttpServletResponse response, Person person) throws Exception {
// do something (save our Person object, for instance)
return new ModelAndView(jsonView);
}
/**
* If something goes wrong (validation, data-binding)
* This method takes care of handling "what goes wrong"
*/
public ModelAndView hanldeBindException(HttpServletRequest request, HttpServletResponse response, ServletRequestBindingException bindingException) {
BindException bindException = (BindException) bindingException.getRootCause();
/**
* Notice i am using jsonView to handle the response
*/
return new ModelAndView(jsonView).addAllObjects(bindException.getModel());
}
}
mise en œuvre de JSONView est présenté comme suit
public class JsonView implements View {
@Autowired
private MessageSource messageSource;
public String getContentType() {
return "application/json";
}
public void render(Map model, HttpServletRequest request, HttpServletResponse response) {
PrintWriter writer = response.getWriter();
response.setContentType("text/plain; charset=UTF-8");
JSONObject jsonObject = new JSONObject();
for (Object object : bindingResult.getAllErrors()) {
if(object instanceof FieldError) {
FieldError fieldError = (FieldError) object;
jsonObject.put(fieldError.getField(), messageSource.getMessage(fieldError, null));
}
}
writer.print(jsonObject.toString());
writer.close();
}
}
J'espère qu'il peut être utile pour vous
Here vous pouvez voir un joli tutoriel sur Json en utilisant DOJO (je n'utilise pas DOJO)
Salut Arthur, je ne peux pas exactement se rapporter à la poste car il discute Spring 3 MVC. Mais tout de même, le post signifie que Spring JSON est une bonne bibliothèque à utiliser? Merci. –
@Mark Estrada Merci pour votre réponse. Bien que je n'utilise pas Spring JSON (j'utilise l'implémentation par défaut du contrôleur Spring - SimpleFormController, MultiActionController) et quand j'ai besoin d'un comportement Json, je crée ma propre implémentation de "JsonView". Je peux utiliser json-lib, jackson json. Je vais vous montrer comment je fais. Mais si Spring JSON répond à vos besoins, allez-y! –
C'est une bonne bibliothèque à utiliser si elle répond à vos besoins. :) – AHungerArtist