我试图覆盖G:link标签,这样我可以前缀的额外字符串。这里是我的代码:覆盖的Grails G:link标签
import org.codehaus.groovy.grails.plugins.web.taglib.*
class ApplicationTagLib {
static namespace = "g"
def link = { attrs, body ->
if("es".equalsIgnoreCase(request.stLocale.language)) {
attrs['controller'] = "es/" + attrs['controller']
}
def applicationTagLib = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
applicationTagLib.link.call(attrs, body)
}
}
这工作得很好,除了当我添加“ES /”生成的路径被转换为ES%2F代替ES /这会导致链接无法正常工作。
是否有办法防止这种自动编码新斜线或更好的方式来此前缀字符串到控制器的路径?
也许更好的做法是用反向URL映射做到这一点:http://grails.1312388.n4.nabble.com/i18nize-URLs-how-to-change-urlMappings-getReverseMapping- td3251559.html – Dana 2011-03-11 22:10:28