2011-07-20 13 views
7

grails warをコンパイルすると、.groovyコードがバイトコードのクラスファイルにコンパイルされていることがわかりますが、要求時にGSPをコンパイルする方法をコンテナ(tomcat)がどのように理解しているのか分かりません。容器はGSPを理解していますか? grailsがサーバのフックにコンテナに取り付けられているという事実はありますか?Grails GSPのコンパイル?

また、初めてGSPを使用した場合、オンデマンドでコンパイルされます。これは正しいです?ありがとう。 warファイルを生成するときに1.2 GSPSがプリコンパイルされるのGrailsので

+0

私の知る限り、GSPは既にプリコンパイルされています。 WARファイルを解凍すると、自分で確認できます。 – Gregg

答えて

12

容器はGSPを理解していますか?

のGSP

が実際に戦争が構築されたときにクラスファイルにコンパイルされ、ないTomcatのことで、実行時に - あなたは戦争のファイルを解凍した場合、あなたはそれが(解凍したWEB-INFを見ないものを見ることができます/ classesディレクトリ):

コンテナは、すべてが事前にコンパイルされているため、実行時に何もする必要はありません。

grailsがサーバにインストールされていることは、コンテナにフックされていますか?

そうではありません。アプリケーションの実行に必要なすべてが戦争に含まれているため、Grailsはコンテナのサーバーにインストールされても差はありません。

3

OK]をクリックして、これだけメーリングリストでこれを見つけました。

1

GSPはJSPに似ていますが、最終的にはサーブレットです。

したがって、.warファイルを作成すると、GSPはサーブレットにプリコンパイルされ、WEB-INF/classes .warフォルダに組み込まれます。 (彼らはgsp_controlleraction _ **クラスから始まります)

TomcatはGSPをコンパイルする方法を知らないが、サーブレットを実行することができます。

Vincent。

+6

実際、GSPクラスを逆コンパイルすると、 'groovy.lang.Script'を拡張した' org.codehaus.groovy.grails.web.pages.GroovyPage'が拡張されていることがわかります。それらはサーブレットではなく、代わりにGrailsサーブレットによって間接的に呼び出されてビューをレンダリングするヘルパークラスです。 –

+0

ありがとう、私は知らなかった。 .dataファイルは同じ目的で使用されていますか? –

+1

各GSPには、静的HTMLセクションを含む2つの.dataファイルと、元のソース行を表示するデバッガのための行番号情報を含む1つのファイルがあります。 –

関連する問題