как отладить страницу gsp? (без грааля, просто gsp)
Вопрос
Я пробовал с netbeans и eclipse, но не повезло ... (не могу попробовать идею IntelliJ)
Я быстро взглянул на код
http://kickjava.com/src/groovy/servlet/TemplateServlet. java.htm р>
и у меня создается впечатление, что .gsp-страницы переводятся в .groovy сервлеты (groovlets) в памяти (я могу ошибаться) ...
так что, возможно, отладка gsp не так проста, как я ...
так, кто-нибудь может сказать мне, как это сделать?
pd: Под отладкой я подразумеваю такие вещи, как пошаговый просмотр кода, проверка переменных, добавление часов и тому подобное, очевидно. Не старый (не очень) старый подход printf ...
Решение
Большая часть логики в ваших GSP должна быть инкапсулирована в TagLibs, и вы можете отлаживать их (по крайней мере, с IntelliJ) так же легко, как и любой другой код Groovy.
Если у вас есть много кода скриптлета в ваших GSP (чего не следует делать), и вы хотите отладить его, вы не можете сделать намного больше, чем println
. Еще одна возможность - просмотреть исходный код Groovy, сгенерированный для вашего GSP. Это можно сделать, добавив параметр showSource
к URL-адресу, как описано здесь .
Другие советы
Я использую хак: добавляю метод к любому контроллеру, например static def debugme(def param) { def a = param }
, и вызываю его из кода gsp: <% ThisController.debugme(this) %>
или <% ThisController.debugme(params) %>
(вы знаете, что вам не нужно перезапускать приложение после редактирования контроллера или представления, верно?)
Я также не думаю, что вся логика должна быть в taglibs: логика для конкретной страницы должна быть четко видна в контроллере или представлении. У нас большая часть логики в контроллерах или доменных классах.
Добавьте параметр в Config.groovy, и сгенерированные gsp-файлы будут записаны в каталог: grails.views.gsp.keepgenerateddir = '/ some / существующие / directory' (целевой каталог должен существовать и быть доступным для записи)
Дополнительная информация: http://jira.codehaus.org/browse/GRAILS-4422
Должна быть возможность отладки сгенерированного Groovy-кода с помощью стандартного отладчика Java. Это было давно, когда я это сделал (когда создавал патч для Grails), и я думаю, что использовал jswat ( http://code.google.com/p/jswat/ ) для отладки gsps. Я не мог получить затмение, чтобы найти исходные файлы, но это, вероятно, работает в Spring Tool Suite Eclipse в настоящее время. Вы должны отлаживать пошаговый код пошагово / пошагово и использовать фильтры, иначе вы можете потерять точку шага (из-за замыканий?). Это уже другая история ...