package cn.mb.cloud.auth.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; } }