如果我们输入以下内容,则Web应用程序的语言会正确更改:
http://localhost:8080/yourCoolWebApp/behappy/list?lang=en
http://localhost:8080/yourCoolWebApp/smile/list?lang=es
但是如果我们输入没有控制器的uri,则显示的语言是默认语言。这是index.gsp的情况。如果我们输入以下代码,则显示的语言始终为默认语言:
http://localhost:8080/?lang=en
http://localhost:8080/?lang=es
In this old bug report,标记为无法修复,有一个解决方案。我试图实现它。我更改了UrlMappings.groovy
的以下行:
"/"(view:"/index")
由:
"/"(view:"/index", controller:"foo")
但是,在 grails clean 之后,index.gsp
始终保持默认语言。
我还有另一个没有控制器的视图,所以我在UrlMappings.groovy
中也有以下代码行:
name contact: "/contact"(view:"contact")
我改变了:
name contact: "/contact"(view:"contact", controller:"foo")
我得到了:The requested resource is not available
(/ webAlojamientoUCA / WEB-INF / grails-app / views / foo / contacto.jsp)
我正在使用Grails 2.2.4。
答案 0 :(得分:2)
Grails' i18n infrastructure relies on the logic passing through the controller layer
是的,您需要创建/拥有控制器!
像
这样的东西UrlMappings
"/"(controller: 'index')
和控制器
class IndexController {
def index() {
}
}
并查看$ {appName} /grails-app/views/index/index.gsp