springboot实现页面自定义国际化

1.首页(可以在我的资源拿到)

在这里插入图片描述

2.实现步骤
2.1. 首页被thymeleaf全面接管
2.2. 新建i18n文件夹,在该文件夹下新建三个文件

在这里插入图片描述

2.3. 填写相关属性

在这里插入图片描述

2.4. 要让配置文件起效,要在application.properties配置文件添加 spring.messages.basename=i18n.login

在这里插入图片描述

2.5. 到这里只是有了属性的国际化切换,但是功能还没有开启,如点击中文(带参数超链接)显示中文,点击英文显示英文,所以我们要写个配置类来实现 LocaleResolver

在这里插入图片描述
自定义国际化类

package com.kuang.config;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

public class MyLocaleResolver implements LocaleResolver {

    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        // 解析请求
        String language = request.getParameter("l");
        // 返回默认的地区解析
        Locale locale = Locale.getDefault();

        if(!StringUtils.isEmpty(language)){
            // 如果请求的链接携带了国际化参数 "zh_CN"
            String[] split = language.split("_");
            // 语言,国家
            locale = new Locale(split[0], split[1]);
        }
        return locale;
    }

	// 此方法返回值为空,不用管
    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}

2.6. 以上的都是对WebMvc的扩展,所有我们书写一个自定义的配置类(一个项目只需写一个)来扩展WebMvc,此时我们只需把我们写好的国际化类注入到WebMvc中即可,相当于组件

自定义WebMvc扩展类

package com.kuang.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

   //自定义国际化组件
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值