Можно ли сказать приложению grails, что оно должно использовать представления JSON по умолчанию, и в случае индекса оно должно использовать представление gsp?
Да.Вы можете обслуживать много разных типов представлений из одного и того же приложения, в том числе GSON Views, работая параллельно с GSP Views.
См. Проект по адресу https://github.com/jeffbrown/webjsonviews.
Если вы запустите это приложение и отправите запрос на http://localhost:8080/person/index с помощью своего браузера, вы увидите HTML-файл, который был отображен на стороне сервера с использованиемGSP.
Если вы отправите запрос на http://localhost:8080/person/index.json с помощью своего браузера, вы увидите JSON, обработанный с использованием GSON Views.
Это отобразит HTML:
curl http://localhost:8080/person/index
Будет отображаться JSON:
curl http://localhost:8080/person/index.json
Будет отображаться JSON:
curl -H "Accept: application/json" http://localhost:8080/person/index
Если вы хотите, чтобы тип содержимого по умолчанию был application/json
, вы можете добавитьпосле PersonController
:
static responseFormats = ['json', 'html']
Это приведет к тому, что следующее вернет JSON вместо HTML:
curl http://localhost:8080/person/index
Надеюсь, это поможет.