我正在为grails app编写配置文件,我想在其中定义重定向模式。 我已经编写了一个配置脚本RedirectMappingsConfig.groovy:
import java.util.regex.Pattern
def c = {pattern, goto, path ->
if (pattern instanceof Pattern && pattern.matcher(path).matches()) {
return goto
}
return false
}
def redirectFromTo = [
c.curry(Pattern.compile('/si/reference.*'), '/enterprise-solutions/references-and-partners#references'),
c.curry(Pattern.compile('/si/kontakt.*'), '/contact-us'),
c.curry(Pattern.compile('/si/zaposlitve.*'), '/careers'),
c.curry(Pattern.compile('/aa'), '/')
]
此列表将在过滤器中读取,如果某些模式匹配请求uri,将执行重定向。
问题:应用程序无法编译,错误是:
Compilation error: startup failed:
RedirectMappingsConfig.groovy: 3: unexpected token: pattern @ line 3, column 10.
def c = {pattern, goto, path ->
^
知道语法有什么问题吗? 我使用grails 2.1.1。
答案 0 :(得分:2)
goto
是Groovy中的reserved word ...将您的闭包更改为:
def c = {pattern, addr, path ->
if (pattern instanceof Pattern && pattern.matcher(path).matches()) {
return addr
}
return false
}
这个错误应该消失: - )