为什么写gsp的时候，StringUtils等常用类不需要import?
李小翔
2013-10-18 09:46

内容列表
问 	 # 
答 	 # 
适用于 	 # 

问
    为什么开发gsp页面，或者在grails console里写调试代码时，bropen.toolkit.utils.StringUtils 等常用的类都不需要import呢？是自动导入的吗？
    另外，我也比较懒，还可以配置自动导入其他类吗？比如我写了一个 a.b.c.d.e.f.FoobarUtils，希望直接在gsp里使用，而不用记那段长长的包名了。

答
    页面和console自动导入类，是通过修改grails源代码实现的，如果你了解jsp的编译过程（gsp也是基本一样的），就应该知道就是先把解析好的页面文件全部转成java代码，然后再吧java代码编译成字节码。
    因此，了解了这些，在将gsp转换成groovy/java代码后，在转换的代码上加几句import其实是件很简单的事情了。
    为了将偷懒进行到底，我们还提供了配置方法，只需要在工程的Config.groovy中，加入类似下面的配置就可以自动导入自定义的类了。
bropen.toolkit.autoimport.classes.lazybone = [
   ”a.b.c.d.e.f.FoobarUtils”,
   ....
]
    当然，其中lazybone可以自定义的，比如 app 啥的。
    另外，在bro-toolkit、bro-framework等各个插件中，我们都做了一些配置，自动导入了一些最常用的类，比如很多的工具类，还有Employee、Organization、User等常见Domain类。
    想知道明细的话，可以在console中使用如下代码查看：
grailsApplication.config.bropen.toolkit.autoimport.classes

适用于
    BroToolkit 2.8+