学习日记6:spring boot——首页配置和国际化

一:首页配置

1.在pom.xml中添加thymeleaf依赖

        
            org.thymeleaf
            thymeleaf-spring5
        
2.在templates包下添加名为index.html的首页文件。

注,名字必须是index。具体原因可查看web自动装配源码

3.自定义配置
/*
如果你想DIY一些定制化的功能,只要写这个组件,然后将它交给springboot,springboot就会帮我们
自动装配

@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的< beans>,作用为:配置spring容器(应用上下文)

@Bean相当于在spring的xml配置文件中写入一下东西儿

    

 */
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //配置首页
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/index.html").setViewName("index");
        registry.addViewController("index").setViewName("index");
      /*以上三行代码达成效果:
      http://localhost:8888/和
      http://localhost:8888/index.html和
      http://localhost:8888/index都会定位到首页
     */
    }

二:国际化

本文演示中文和英文的切换

1.在resource下新建i18n文件夹,并新建login.properties,login_en_US.properties和login_zh_CN.properties三个文件。如下图所示
擷取.PNG

1.1文件建好以后,下面我们来填值


擷取.PNG
2.在application.yml文件中配置一下指向我们新建的i18n文件夹
spring:
    #4.国际化
  messages:
    basename: i18n.login
3.在html界面导入命名空间并配置好文字








中文
English
4.新建MyLocaleResolver并实现LocaleResolver
//国际化
@Configuration
public class MyLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        //获取请求中的语言参数
        String language = request.getParameter("l");
        //如果没有就显示默认的
        Locale mLocal = Locale.getDefault();
        if (!StringUtils.isEmpty(language)) {
            String[] s = language.split("_");
            mLocal = new Locale(s[0], s[1]);
        }
        return mLocal;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}
5.修改MyMvcConfig的内容,增加Bean->MyLocaleResolver
/*
如果你想DIY一些定制化的功能,只要写这个组件,然后将它交给springboot,springboot就会帮我们
自动装配

@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的< beans>,作用为:配置spring容器(应用上下文)

@Bean相当于在spring的xml配置文件中写入一下东西儿

    

 */
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //配置首页
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/index.html").setViewName("index");
        registry.addViewController("index").setViewName("index");
    }

    //配置自定义国际化
    @Bean
    public MyLocaleResolver localeResolver() {
        return new MyLocaleResolver();
    }

//    //ViewResolver实现了视图解析器接口的类,我们就可以把它看做视图解析器
//    @Bean
//    public ViewResolver myViewResolver() {
//        return new MyViewResolver();
//    }
//
//    //自定义一个自己的视图解析器MyViewResolver
//    public static class MyViewResolver implements ViewResolver {
//
//        @Override
//        public View resolveViewName(String s, Locale locale) throws Exception {
//            return null;
//        }
//    }
}

你可能感兴趣的:(学习日记6:spring boot——首页配置和国际化)