Grails GSP - 根据区域设置显示不同的文本字段

时间:2015-06-04 15:25:58

标签: grails if-statement locale gsp

我在尝试使用Grails 2.4.3显示依赖于用户区域设置的不同g:textfield时遇到问题。

我发现要绕过Grails 2.4.3中提出的问题,我必须在我的gsp页面上设置一个变量:

<g:set var="lang" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE'}" />

我可以正确显示$ {lang}并在屏幕上看到正确的值。

我必须显示一个取决于语言环境值的不同文本字段,所以我假设我可以使用以下但它不起作用?

<g:if test="${lang.equals('de')}">
    German Textfield
</g:if>

我尝试了lang.equals和lang == de,我在这里展示了每个de和en

<g:elseif test="${lang == 'en'}">
    English Textfield
</g:elseif>

<g:else>
    no language support
</g:else>

3 个答案:

答案 0 :(得分:3)

这样做:

<g:if test="${lang == Locale.GERMAN}">
...

我建议您获取当前的语言环境:

<%@ page import="org.springframework.web.servlet.support.RequestContextUtils" %>

<g:set var="lang" value="${RequestContextUtils.getLocale(request)}" />

答案 1 :(得分:0)

区域设置不是一种语言。它拥有国家和语言。请参阅specs

<g:set var="locale" value="${RequestContextUtils.getLocale(request)}" />
<g:if test="${locale == Locale.GERMAN}">German Textfield</g:if>

答案 2 :(得分:0)

if(navigator.onLine)
{
   //Continue with your code.
}
else
{
   //Show your error div.
}
相关问题