grails国际化在index.gsp中有效吗?
如果键入以下内容,则web应用程序的语言会正确更改:grails国际化在index.gsp中有效吗?,grails,internationalization,Grails,Internationalization,如果键入以下内容,则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
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
,标记为无法修复,存在解决方案。我试图实现它。我更改了我的UrlMappings.groovy的以下行:
"/"(view:"/index")
name contact: "/contact"(view:"contact")
作者:
但是,在grails清理之后,index.gsp
始终保持默认语言
我还有另一个没有控制器的视图,因此在UrlMappings.groovy
中也有以下代码行:
"/"(view:"/index")
name contact: "/contact"(view:"contact")
我改变了它:
name contact: "/contact"(view:"contact", controller:"foo")
我得到一个:请求的资源不可用
(/webAlojamientoUCA/WEB-INF/grails-app/views/foo/contacto.jsp)
我正在使用Grails2.2.4
是的,您需要创建/拥有控制器
差不多
URL映射
"/"(controller: 'index')
和控制器
class IndexController {
def index() {
}
}
和view${appName}/grails app/views/index/index.gsp您是否在“foo”中定义了操作“contact”?普惠制存在吗?i18n需要通过控制器层,因此您在创建操作的正确路径上。@SérgioMichels:gsp存在,控制器不存在(这就是为什么我在UrlMappings
中定义了它)。因此,在这种情况下,我们可以创建一个控制器联系人,其中只有一个空动作联系人。您通常如何处理index.gsp。你也有控制器吗?以我的经验,“…?lang=en”不起作用…没有多少帮助,但我放弃了。@chelder是的,你需要创建控制器。@marko我使用lang属性,它可以工作,但前提是你有一个控制器。这正是你提到的bug@chelderI guess@dmahapatro中提到的。可能是我把控制器命名为“foo”而感到困惑。不管怎样,我认为现在每个人都更清楚地看到了同样的问题。