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;
|
}
|
}
|