首页 » my » 正文

查看GSP产生的源码

今天在调试Grails程序的时候碰到了个郁闷的问题,Groovy里的代码执行的都很正常,在gsp页面上报个空指针的异常出来,调试的半天都没有找到原因,如果像jsp一样能查看到gsp生成的源码该多好啊。

google到了一页文章,查看gsp源码的:

 

GSP跟JSP类似,在呈现给浏览器最终页面之前会产生相应的源码。对于JSP,产生的Java代码;对于GSP,则产生的是Groovy代码。但是,Grails文档中并没有关于这方面的记载。从GRAILS-6257里,我们可以对这一GSP调试特性有一点了解。

  • 给url加上"?showSource=true"或"&showSource=true"会显示视图对应的groovy源码而非直接显示视图。它不会显示所包含模板的源码。该特性仅在开发模式有效。
  • 在Config.groovy里设置"grails.views.gsp.keepgenerateddir"可以保存所有产生的源码。该目录必须指向已经存在、可写的目录。
  • 在"grails war" gsp pre-compilation,所产生的源码保存在grails.project.work.dir/gspcompile(一般在~/.grails/(grails_version)/projects/(project name)/gspcompile)。

这里有个地方需要注意一下,那就是在Config.groovy里,其相对目录的是以“工程目录”为起点的,而非Config.groovy所在的目录“工程目录/grails-app”。即,如果

1 grails.views.gsp.keepgenerateddir="gspsource"

那么,其所指向的目录为(假设工程目录为“d:grailsapp”):d:grailsappgspsource,而不是:d:grailsappgrails-appgspsource。

 

原文地址:如何查看GSP产生的源码?