2011-02-04 2 views
3

Мне интересно, как правильно вернуть HTML или JSON внутри одного и того же метода в зависимости от логики в методе Spring Controller. Я сделал это в .NET, просто нужно знать, как это сделать весной.Возврат HTML или JSON в методе весеннего контроллера

UserModel user = new UserModel();  
    user.setFirstName("Michael"); 
    user.setLastName("Flynn"); 

    model.getList().add(user); 
    model.setSearchTerm("test"); 

    if(true) 
    { 
     return new ModelAndView("controls/tables/users", "model", model); 
    } 
    else 
     return model; 
+0

Любые обновления по этой теме? любые приемлемые ответчики? – Confuser

ответ

0

мне нужно, чтобы понять это в последнее время и имел счастье с this блоге от SpringSource.

+0

Это только для JSON. Он не говорит о возвращении того или другого, и как это сделать. –

0

Я предполагаю, что запросы указывают, какой формат они хотят, используя стандартное согласование содержимого HTTP. Если это так, вы можете использовать ContentNegotiatingViewResolver. Он также поддерживает выбор формата с использованием «расширения» URL-адреса, например: http://localhost/content.json будет выбирать JSON, а http://localhost/content.html будет выбирать HTML.

+0

Было бы здорово, если бы пользователь знал, чего они хотят. Но я хочу либо вернуть HTML, либо JSON в зависимости от ошибки или нет. Возвращение HTML в основном является успешным, а возврат JSON означает ошибку. У меня есть javascript, который будет обрабатывать обе ситуации на стороне клиента, чтобы проверить, является ли это HTML или JSON. Этот javascript на стороне клиента отлично работает, потому что я сделал то же самое в .NET. Мой вопрос: я не свой тип содержимого запроса для определения вывода. –

+0

Хорошо, с вашего контроллера верните ModelAndView, где View представляет собой либо JSTLView (или любой вид, соответствующий используемому языку шаблонов HTML), либо MappingJacksonJsonView при ошибке. – sourcedelica

+0

Есть ли пример этого в коде? Я рассматриваю подклассификацию flexjson под названием JsonView, которая будет делать то, что мне нужно. –

Смежные вопросы