【问题标题】:how to debug a gsp page? (no grails, just gsp)如何调试 gsp 页面? (没有 grails,只有 gsp)
【发布时间】:2009-10-30 11:46:17
【问题描述】:

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

我快速浏览了一下代码

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

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

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

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

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

【问题讨论】:

    标签: debugging ide groovy gsp


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        向 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 中工作。 您必须逐步/逐步调试常规代码并使用过滤器,否则您可能会丢失步骤点(因为闭包?)。这已经是另一个故事了...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-18
          • 1970-01-01
          • 2012-05-31
          • 1970-01-01
          • 2013-12-11
          相关资源
          最近更新 更多