Есть ли какой-либо способ интегрировать ajax в весенний mvc и apache плитки. Для меня при отправке запроса на контроллер и после этого отправьте обратно на просмотр, данные не могут проходить через конфигурацию плитки. Помогите мне пожалуйста. СпасибоКак ajax весной mvc и плитка
0
A
ответ
0
Я делаю это все время. То, что я делаю, вместо того, чтобы отправлять обратно строку «Вид» или объект «ModelAndView», возвращает объект типа ResponseEntity.
Например, в классе контроллера, вы можете иметь метод, как:
@RequestMapping(value="/cache/clear", method = RequestMethod.GET)
public ResponseEntity<String> clearAllCaches() {
Map<String, Object> results = new HashMap<String, Object>();
long startTimestamp = System.currentTimeMillis();
for (CachingService cachingService : cachingServices) {
LOGGER.info("Clearing caches in " + cachingService.getClass().getSimpleName());
cachingService.clearCache();
}
long finishTimestamp = System.currentTimeMillis();
long executionTime = finishTimestamp - startTimestamp;
LOGGER.warn("Finished clearing caches in " + cachingServices.size() + " services in " + executionTime + " ms.");
results.put("executionTime", executionTime);
results.put("serviceCount", cachingServices.size());
results.put(ServiceConstants.RETURN_KEY_SUCCESS, Boolean.TRUE);
return createResponse(results, HttpStatus.CREATED);
}
protected ResponseEntity<String> createResponse(Map <String, Object> results, HttpStatus successCode) {
JSONSerializer serializer = new JSONSerializer();
String responseBody = serializer.deepSerialize(results);
HttpStatus status = successCode;
boolean success = results.containsKey(ServiceConstants.RETURN_KEY_SUCCESS)
? (Boolean)results.get(ServiceConstants.RETURN_KEY_SUCCESS)
: false;
if (!success) {
status = HttpStatus.BAD_REQUEST;
}
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setContentLength(responseBody.length());
headers.add("Access-Control-Allow-Origin", "*");
return new ResponseEntity<String>(responseBody, headers, status);
}
Обратите внимание, что я использую FlexJSON, как я использую Spring Roo. Вы также можете вручную вызвать Джексона.
0
Я решаю свою проблему по аннотации @ResponseBody, чтобы отправить строку обратно на страницу ajax.
public @ResponseBody
String test() {
List<User> users = userDetailsService.test();
for (User user : users) {
System.out.println(user);
}
return "1";
}