Компиляция Grails GSP? - PullRequest
       13

Компиляция Grails GSP?

7 голосов
/ 20 июля 2011

Когда вы компилируете войну Grails, я понимаю, что код .groovy скомпилирован в файлы классов байт-кода, но я не понимаю, как контейнер (скажем, tomcat) знает, как скомпилировать GSP, когда их запрашивают , Контейнеры понимают GSP? Влияет ли тот факт, что Grails установлен на сервере, в контейнеры?

Кроме того, когда GSP используется впервые, он компилируется затем по требованию и только один раз. Это правильно? Спасибо.

Ответы [ 3 ]

12 голосов
/ 20 июля 2011

Контейнеры понимают GSP?

GSP фактически скомпилированы в файлы классов, когда создается война, а не во время выполнения tomcat - если вы разархивируете файл войны, вы можете посмотреть, что он делает (посмотрите в распакованном каталоге WEB-INF / classes) :

...
gsp_appname_controllerNameviewName_gsp.class
gsp_appname_controllerNameanotherViewName_gsp.class
...

Контейнеру не нужно ничего делать во время выполнения, поскольку все предварительно скомпилировано.

Влияет ли факт, что grails на сервере установлен, в контейнеры?

Это не так; все необходимое для запуска приложения включено в war, поэтому установка grails на сервер контейнера не имеет значения.

3 голосов
/ 20 июля 2011

Хорошо, просто нашел это в списке рассылки:

Начиная с Grails 1.2, gsps предварительно компилируются при создании файла войны.

1 голос
/ 20 июля 2011

GSP похожи на JSP, в конечном счете они являются сервлетами.

Таким образом, когда вы создаете файл .war, ваш GSP предварительно компилируется в сервлеты и включается в папку WEB-INF / classes .war.(они начинаются с gsp_controlleraction _ **. class)

Итак, нет, Tomcat не знает, как скомпилировать GSP, но может выполнять сервлеты.

Vincent.

...