6

我已经尝试过使用 netbeans 和 eclipse,但没有运气......(不能尝试 IntelliJ 的想法)

我快速浏览了一下代码

http://kickjava.com/src/groovy/servlet/TemplateServlet.java.htm

它给我的印象是.gsp页面在内存中被翻译成.groovy servlet(groovlets)(我可能错了)......

所以也许调试gsp并不像我那么容易......

那么,谁能告诉我该怎么做?

pd:我所说的调试是指逐步浏览代码、检查变量、添加监视以及所有这些事情,显然。不是(不是那么)好的旧 printf 方法......

4

3 回答 3

8

GSP 中的大部分逻辑都应该封装在 TagLibs 中,并且您可以调试它们(至少使用 IntelliJ),就像任何其他 Groovy 代码一样容易。

如果您的 GSP 中确实有很多 scriptlet 代码(您不应该这样做),并且您想对其进行调试,那么除了println. 另一种可能性是查看为您的 GSP 生成的 Groovy 代码的源代码。这可以通过将showSource参数附加到 URL 来完成,如此处所述

于 2009-10-30T16:21:53.637 回答
3

我使用 hack:向任何控制器添加一个方法,例如static def debugme(def param) { def a = param },并从 gsp 代码调用它:<% ThisController.debugme(this) %>,或<% ThisController.debugme(params) %>

(您知道在编辑控制器或视图后不必重新启动应用程序,对吧?)

我也不认为所有的逻辑都应该在标签库中:特定于页面的逻辑应该在控制器或视图中清晰可见。我们在控制器或域类中拥有大部分逻辑。

于 2009-12-10T15:36:54.693 回答
2

向 Config.groovy 添加一个设置,生成的 gsp 文件将被写入一个目录:grails.views.gsp.keepgenerateddir='/some/existing/directory'(目标目录必须存在且可写)

更多信息:http: //jira.codehaus.org/browse/GRAILS-4422

应该可以使用标准 Java 调试器调试生成的 groovy 代码。很久以前我这样做了(当我为 grails 创建补丁时),我想我使用了 jswat(http://code.google.com/p/jswat/)来调试 gsps。我无法让 eclipse 找到源文件,但这可能现在在 Spring Tool Suite Eclipse 中工作。您必须逐步/逐步调试常规代码并使用过滤器,否则您可能会丢失步骤点(因为闭包?)。这已经是另一个故事了……

于 2010-02-22T22:16:47.603 回答