Grails не является заменой, это абстракция вокруг традиционного стека Java EE и некоторых чрезвычайно популярных библиотек, таких как Spring и Hibernate, которые позволяют вам работать быстрее, используя «соглашение о конфигурации».
Одним из компонентов Grails являются GSP, серверные страницы Groovy, представляющие собой интерфейсную технологию, V в парадигме MVC (Model View Controller). У вас также есть Доменные Объекты, которые являются M (Модель), и Контроллеры, которые являются C. Grails также имеет Услуги, которые лучше всего поместить в категорию M (IMHO) парадигмы MVC. Таким образом, расположение моделей в Grails дает вам относительно простое постоянство (использование гибернации под прикрытием), службы предоставляют вам возможность многократного использования в вашей бизнес-логике и логике транзакций, а контроллер просто вызывает правильную логику для данного запроса и возвращает ответ.
Одна часть этого ответа - это то, что отображается на экране. В простом веб-приложении GSP выполняют эту роль - контроллер сообщает браузеру, что нужно визуализировать определенный GSP, к которому привязаны данные из метода сервиса, который был вызван в контроллере. Однако просто заставить контроллер вернуть json, поэтому, если конечная точка, связанная с контроллером, является запросом ajax, клиент может обработать сам ответ.
Вы можете использовать любую технологию интерфейса, которую вы хотите, в приложении Grails. По умолчанию это GSP, которые являются расширением JSP, которые являются частью традиционного стека Java, но вы можете использовать jQuery, Sencha, Sproutcore, Backbone, все что угодно. В этом случае у вас будет один GSP, который загружает ваш код JavaScript, а остальное будет обработано клиентским приложением.