先写一个Controller输出信息
package com.example.thy;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.List;
@Controller
public class UserController {
@RequestMapping("/hello")
public String user(Model model){
User user = new User();
user.setId(11);
user.setUsername("张三");
user.setAddress("山东");
users.add(user);
model.addAttribute("user",user);
return "hello";
}
}
1.${}:变量表达式,用于访问的是容器上下文的变量,比如域变量:request域,session域, 如果没对象,和${} 基本上没区别
2.*{}:选择表达式,是选定的对象,不是整个环境的映射
或者
上面的输出结果都是一样的
3.#{}:thymeleaf中的消息表达式、或者是资源表达式
message.properties
message=你好
hello.html
4.@引用URL地址
5.项目的国际化
设置配置文件的编码格式
先resources创建i18n三个配置文件
login.properties
login_en_US.properties
login_zh_CN.properties
直接进入login.properties
,如果没有这个,可能是因为,idea的版本是新的,需要安装插件,如下:
插件安装之后, 点击加号加上自己的内容
login.properties
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
login_en_US.properties
login.btn=Sign in
login.password=Password
login.remember=Remember me
login.tip=Please sign in
login.username=Username
login_zh_CN.properties
login.btn=登录
login.password=密码
login.remember=记住我
login.tip=请登录
login.username=用户名
在application.properties加载i18n
spring.messages.basename=i18n.login
或者application.yml加载i18n
spring:
messages:
basename: i18n.login
之后创建login.html,不要忘记加入xmlns:th="www.thymeleaf.org"
Title
中文
English
然后创建MyLocaleResolver
package com.example.thy;
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)){
//分割请求参数
String[] split = language.split("_");
//国家,地区
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
把国际化解析器添加到容器中
package com.example.thy;
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 WebMvcConfig implements WebMvcConfigurer {
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)