我有一个带有语言下拉选择器的Grails应用程序,如下所示:
<li><a href="?lang=tr_TR">Turkish</a></li>
<li><a href="?lang=en_US">English</a></li>
<li><a href="?lang=fr_FR">French</a></li>
当用户点击该链接时,它会将lang
参数附加到查询字符串,并且语言会正确更改。但是,现在我必须将语言更改保存到数据库,以便我们知道用户最后选择的语言。有谁知道我怎么能做到这一点?
答案 0 :(得分:1)
您可以使用params["lang"]
然后为了保存未来访问的价值,我可以想到不同的方式:
如果您已经在数据库中有一个包含记录的User对象,则只需向其添加一个lang变量。只要您的用户记录保存在数据库中,就会永久记住这一点。
user.lang = params["lang"]
user.save()
使用Session范围存储lang变量。
session.lang = params["lang"]
使用Cookie将值保存在用户的浏览器历史记录中。 http://grails.org/plugin/cookie
cookieService.setCookie('lang', params["lang"]) // to set
cookieService.get('lang') // to retrieve
答案 1 :(得分:0)
如果用户可以更改您应用的任何页面中的语言,我建议您使用拦截器http://grails.org/doc/latest/ref/Controllers/beforeInterceptor.html。使用此拦截器,您可以获得如果已将参数'lang'传递给控制器并正确设置登录用户的语言。