Визуализация представлений в виде строки с использованием Spring MVC и Apache Tiles - PullRequest
2 голосов
/ 06 января 2011

Я пытаюсь повторно использовать некоторые из моих плиток в контроллере, который возвращает клиенту ответ json. Я хотел бы вернуть ответ json, похожий на следующий формат:

{ 
 'success': <true or false>,
 'response': <the contents of an apache tile>
}

В моем контроллере я хотел бы выполнить логику, подобную этому псевдокоду:

boolean valid = validator.validate(modelObj)
String response = ""
if(valid){
     response = successView.render() // im looking for a way to actually accomplish        
                                     // this, where the successView is the apache tiles view.
                                     // I would also need to pass a model map to the view somehow.
}else{
     response = errorView.render() 
}
writeJsonResponse(httpResponse, /* a Map whose json representation looks like the one I described above. */)

Ответы [ 2 ]

0 голосов
/ 14 января 2011

Если вам нужно визуализировать представление, используя Apache Tiles 2 , вы должны использовать

org.springframework.web.servlet.view.tiles2.TilesViewResolver

См. Пример учебника здесь: http://krams915.blogspot.com/2010/12/spring-mvc-3-tiles-2-integration.html

Если вам нужно отобразить ответ как JSON, вы можете использовать @ ResponseBody , который требует Джексона в вашем пути к классам. Смотрите пример здесь http://krams915.blogspot.com/2011/01/spring-mvc-3-and-jquery-integration.html (контроллер возвращает JSON). Вы также можете увидеть похожий пример @ResponseBody в http://krams915.blogspot.com/2010/12/jqgrid-and-spring-3-mvc-integration.html

0 голосов
/ 13 января 2011

Я верю, что вы хотите реализовать класс представления, который обернет вывод jsp в json. Рассматриваемый класс может быть org.springframework.web.servlet.view.tiles2.TilesView.

Другим вариантом может быть расширение JSON-конвертера. org.springframework.http.converter.json.MappingJacksonHttpMessageConverter

...