package com.dsh.config; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.util.StringUtils; import org.springframework.web.servlet.LocaleResolver; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Locale; public class MyLocaleResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest request) { //1=中文,2=英文,3=印尼文 String language = getQueryParams(request, "language"); Locale locale = null; if (StringUtils.isEmpty(language)) { locale = Locale.getDefault(); } //如果请求不为空 if (language.equals("1")) { locale = new Locale("zh", "CN"); } else if (language.equals("2")) { locale = new Locale("en", "US"); } else { locale = new Locale("in", "ID"); } return locale; } @Override public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } public String getQueryParams(HttpServletRequest request, String key) { try { String method = request.getMethod(); if ("POST".equals(method)) { String parameter = request.getParameter(key); if (!StringUtils.isEmpty(parameter)) { return parameter; } Object attribute = request.getAttribute(key); if (null != attribute) { return attribute.toString(); } StringBuffer sb = new StringBuffer(); ServletInputStream inputStream = request.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); String s; while ((s = bufferedReader.readLine()) != null) { sb.append(s); } bufferedReader.close(); inputStream.close(); JSONObject jsonObject = JSON.parseObject(sb.toString()); return jsonObject.getString(key); } else { String parameter = request.getParameter(key); if (!StringUtils.isEmpty(parameter)) { return parameter; } Object attribute = request.getAttribute(key); if (null != attribute) { return attribute.toString(); } } } catch (Exception e) { e.printStackTrace(); } return null; } }