You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin页面标题本地化问题:注解失效如何解决?

Vaadin页面标题本地化实现方案
  • @PageTitle注解仅支持静态字符串赋值,不具备自动解析i18n消息源表达式的能力,所以直接传入${user.account}会被当作原始文本显示,无法触发消息解析。
  • 要实现页面标题的本地化,必须实现HasDynamicTitle接口,通过该接口的动态方法读取i18n消息源中的对应值。

示例代码(Spring整合场景)

@Route(URL)
@RolesAllowed({"ADMIN", "EMPLOYEE"})
public class AccountEditorView extends VerticalLayout implements HasDynamicTitle {

    private final MessageSource messageSource;

    // 构造函数注入Spring MessageSource
    public AccountEditorView(MessageSource messageSource) {
        this.messageSource = messageSource;
        // 视图初始化逻辑
    }

    @Override
    public String getPageTitle() {
        // 获取当前UI的Locale
        Locale currentLocale = UI.getCurrent().getLocale();
        // 从消息源获取本地化标题,"user.account"对应i18n配置文件中的键
        return messageSource.getMessage("user.account", null, currentLocale);
    }
}

非Spring场景补充

如果未整合Spring,可通过Vaadin自带的I18NProvider实现消息解析:

@Override
public String getPageTitle() {
    I18NProvider i18nProvider = VaadinSession.getCurrent().getI18NProvider();
    Locale currentLocale = UI.getCurrent().getLocale();
    return i18nProvider.getTranslation("user.account", currentLocale);
}

内容的提问来源于stack exchange,提问作者Felix Schildmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:57:15