基于浏览器请求的国际化使用的是AcceptLanguageLocaleResolver类,该类是默认的实现类,也是最容易使用的语言区域解析器。SpringMVC会读取浏览器的accept-language标题,根据请求消息头自动获取语言区域。AcceptLanguageLocaleResolver可以不用显示配置,也可以显示配置。
package com.springmvc.controller;
import com.springmvc.entity.User;
import org.apache.commons.fileupload.RequestContext;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.support.RequestContext;
import javax.servlet.http.HttpServletRequest;
/**
* @author YuusukeUchiha
* @date 2020/7/19 21:41
* @ide IntelliJ IDEA
*/
@Controller
public class UserController {
@RequestMapping(value = "/{formName}")
public String registerForm(@PathVariable String formName, Model model) {
User user = new User();
model.addAttribute("user", user);
// 动态跳转到页面
return formName;
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(
@ModelAttribute @Validated User user,
Model model,
HttpServletRequest httpServletRequest) {
// 从后台获取国际化资源文件中的信息userName
RequestContext requestContext = new RequestContext(httpServletRequest);
String username = requestContext.getMessage("userName");
System.out.println(username);
model.addAttribute("user", user);
return "success";
}
}