Add*_*der 1 session spring locale internationalization vaadin
我正在设置语言环境以进行翻译。当语言环境在会话期间保持不变时,它会起作用。但是,如果我在会话中间更改语言环境并重新加载页面,它会保留在旧语言环境中。
您知道从浏览器获取最新语言设置的方法吗?
我的代码:
@SpringUI
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MainUI.class)
public class MainUI extends UI
{
@Override
protected void init(VaadinRequest request)
{
log.debug("MainUI init! locale: {}", getLocale());//or getSession().getLocale()
messageByLocaleService.setLocale(getLocale());
...
Run Code Online (Sandbox Code Playgroud)
我自己找到了一个解决方案,但我不能 100% 确定这是正确的解决方案。
我发现Page.getCurrent().getWebBrowser()有时会抛出空异常。我还需要一个请求对象来评估 cookie。
我可以通过VaadinService.getCurrentRequest(). 所以我可以从那里获取语言环境并有一个单点故障,使我的代码更可靠。
所以,我现在的答案是:
Locale locale = VaadinService.getCurrentRequest().getLocale();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |