Grails & Groovy 相关工具
| Modifiers | Name | Description |
|---|---|---|
static grails.core.DefaultGrailsApplication |
application |
grailsApplication |
static org.springframework.web.context.support.GenericWebApplicationContext |
context |
grailsApplication.getMainContext() |
| Type | Name and description |
|---|---|
static List<String> |
errorMessages(Object bean)从bean里获得错误信息,并返回错误信息(字符串)列表 |
static org.grails.buffer.StreamCharBuffer |
evalGspFrag(String gspText, Map model)执行 gsp 代码片段 |
static Object |
evalScript(String script, Binding binding, Map params)执行脚本:使用GSE,避免每次都编译 |
static List<Map> |
findViews(String viewPath, String prefix)在应用和各个插件下搜索视图模板 |
static String |
fixPluginName(String name) |
static List<String> |
getAllPluginNames()获得所有按照依赖关系排列(依赖多的靠后)后的插件名称列表 |
static List<grails.plugins.GrailsPlugin> |
getAllPlugins()获得所有按照依赖关系排列(依赖多的靠后)后的插件列表 |
static String |
getAppName()获得当前应用的名称,如 Foobar |
static List<String> |
getAutoImportClasses()根据各插件的 grails-app/conf/autoimports.groovy,获得将要在GSP、Script中自动导入的类列表 |
static Object |
getConfig(String path)获取 Config 值。 |
static grails.plugins.GrailsPlugin |
getPlugin(Class clazz)根据 Artefact 类(如 Domain 类)计算插件 |
static grails.plugins.GrailsPluginManager |
getPluginManager()获得插件管理器 |
static String |
getPluginName(Class clazz)根据 Artefact 类(如 Domain 类)计算插件名称 |
static String |
getServerURL()获得当前应用服务器的绝对地址 |
static java.io.File |
getSourceFile(Class domainClazz)开发模式下,获得类文件的源码 |
static boolean |
isDevelopmentMode()是否是开发环境 |
static boolean |
isInteractiveMode()是否是交互模式的 run-app |
static String |
isMessageLangSupported(String lang)判断国际化语言是否支持 |
static boolean |
isPluginAvailable(String pluginName)是否启用了某个插件 |
static Boolean |
isViewExists(String viewPath)在应用和各个插件下搜索视图文件是否存在 |
static void |
mergeMessages(Locale locale, Map<String, String> properties)合并国际化消息 |
static void |
mergeMessages(Locale locale, String key, String value)合并国际化消息 |
static String |
message(String code, List args = null, String defaultMsg = null, Boolean isDefaultLang = false)根据消息代码等,获得国际化的消息字符串(可以在Service里使用)。 |
static String |
messageLang(String lang = "default")计算当前使用的国际化语言 |
static Locale |
messageLocale(String lang = "default")计算当前使用的国际化语言 |
static Properties |
parseProperties(java.io.File configFile)// * 根据键值对,创建一个 Config 对象 // |
static List<Map> |
sortPlugins(List<Map> plugins, String order = "asc")按照插件的依赖关系排序。 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
grailsApplication
grailsApplication.getMainContext()
从bean里获得错误信息,并返回错误信息(字符串)列表
执行 gsp 代码片段
执行脚本:使用GSE,避免每次都编译
script - 脚本内容binding - 参数绑定,可为空params - 其他参数,可为空在应用和各个插件下搜索视图模板
视图模板位于 viewPath 下,名称为 _prefix_插件名.gsp,如果在应用下,则后缀插件名为app。
viewPath - 视图路径,如 "/bropen/framework/core/security/User/"prefix - 视图模板名前缀,如 foobar获得所有按照依赖关系排列(依赖多的靠后)后的插件名称列表
获得所有按照依赖关系排列(依赖多的靠后)后的插件列表
获得当前应用的名称,如 Foobar
根据各插件的 grails-app/conf/autoimports.groovy,获得将要在GSP、Script中自动导入的类列表
获取 Config 值。主要供 java 的类使用(调用 ConfigObject 不方便)
name - 配置名,如“grails.plugin.springsecurity.ldap.active”根据 Artefact 类(如 Domain 类)计算插件
根据编译时 Grails 自动生成的 GrailsPlugin 注解计算,如果不存在注解则返回 null。
获得插件管理器
根据 Artefact 类(如 Domain 类)计算插件名称
根据编译时 Grails 自动生成的 GrailsPlugin 注解计算,如果不存在注解则返回 null。
获得当前应用服务器的绝对地址
开发模式下,获得类文件的源码
如:GrailsUtils.getSourceFile(Employee)
domainClazz - Domain 类是否是开发环境
不同于 Environment 的同名方法,如果是 CUSTUM + run-app,这里也会返回 true。
是否是交互模式的 run-app
判断国际化语言是否支持
lang - 映射前的语言,如 zh_TW是否启用了某个插件
pluginName - 插件名称在应用和各个插件下搜索视图文件是否存在
viewPath - 视图路径,如 /portal/index合并国际化消息
locale - 如 Locale.CHINA、Locale.US 等properties - 要合并的消息合并国际化消息
根据消息代码等,获得国际化的消息字符串(可以在Service里使用)。
参考:http://blog.zmok.net/articles/2008/08/07/grails-internationalization-in-the-service
code - The code to resolve the message forargs - A list of argument values to apply to the message, when code is used.defaultMsg - The default message to output if the error or code cannot be found in messages.properties.isDefaultLang - 如为true,则取系统支持的第一种语言的消息,如果为false(默认)则取浏览器语言的消息计算当前使用的国际化语言
Config 中可以配置:
bropen.toolkit.i18n.supported: 系统支持的i18n语言列表,如 ["zh_CN"];bropen.toolkit.i18n.mapping: 语言不在上面列表中时的映射关系;["zh_CN": ["zh*"]] 表示所有 zh 为前缀的语种都映射到 zh_CN,而其他语言则采用默认语言。lang - 映射前的语言,如 zh_TW;
或通过 response.getLocale ( ) .getLanguage ( ) + "_" + response.getLocale().getCountry() 计算出来的结果;
如果为 default(默认值),则为当前浏览器的语言;
如果为 null,则为系统支持的第一种语言。计算当前使用的国际化语言
// * 根据键值对,创建一个 Config 对象 //
按照插件的依赖关系排序。
plugins - 插件 Map 列表,格式为 [pluginName|name: Xyz, xxx: yyy], 其中必须要有的是 pluginName|name,其他键值对可选order - 排列顺序,asc(默认,依赖多的排后面) 或 desc