如何调试GSP页面?(不涉及Grails,只是GSP)

6
我尝试过使用NetBeans和Eclipse,但没有成功...(无法尝试IntelliJ IDEA)
我快速浏览了一下代码。

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

我有一种感觉,即.gsp页面在内存中被翻译为.groovy servlets(groovlets)(我可能错了)...

因此,也许调试gsp并不像我想的那么容易...

那么,有人可以告诉我如何做吗?

注:通过调试,我的意思是浏览代码步骤,检查变量,添加监视器以及所有这些类型的操作,显然不是(不太好的)旧printf方法...

3个回答

8

你的GSP中大部分逻辑应该封装在TagLibs中,而且你可以像任何其他Groovy代码一样方便地通过IntelliJ进行调试。

如果你的GSP中有很多脚本代码(其实不应该有的),并且想要调试它们,除了使用println之外,你别无选择。另一种可能是查看为你的GSP生成的Groovy代码的源代码。这可以通过在URL末尾添加showSource参数来完成,如此处所述。


3
我使用了一个技巧:向任何控制器添加一个方法,例如static def debugme(def param) { def a = param },并从gsp代码中调用它:<% ThisController.debugme(this) %><% ThisController.debugme(params) %>。(你知道在编辑控制器或视图后不必重新启动应用程序,对吧?)
我也不认为所有的逻辑都应该在标签库中:页面特定的逻辑应该在控制器或视图中清晰可见。我们大部分的逻辑都在控制器或领域类中。

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可能已经可以了。 您必须逐步/逐步进入调试Groovy代码,并使用过滤器,否则您可能会失去步骤点(因为闭包?)。那已经是另一回事了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接