nickchange
2023-12-14 5a107c0386a1edb756f33e573133f01d29e4dbcd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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;
    }
}