jeecg登录页国际化

jeecg登录页国际化

需求如下

官方版本的只能选择之后,登录进入才能显示国际化效果,而我们需要的是需要下拉切换之后,登录页也要立即显示。
中文
QQ20200509-103840@2x
英文
QQ20200509-103851@2x

代码如下

在LoginController方法中加入。

/**
     * 登录页切换。
     * @param req
     * @return
     */
    @JAuth(auth = Permission.SKIP_AUTH)
    @RequestMapping(params = "switchInternational")
    public String switchInternational(HttpServletRequest req) {
        // 语言选择
        String langCode = req.getParameter("langCode");
        if (req.getParameter("langCode") != null) {
            HttpSession session = req.getSession();
            session.setAttribute("lang", req.getParameter("langCode"));
        }
        return "login/login";
    }

在login.jsp中加入
默认没有选择语言,默认为中文。

<%
    Object lang = session.getAttribute("lang");
    //默认为中文
    if (lang == null) {
        session.setAttribute("lang", "zh-cn");
    }

    SysThemesEnum sysTheme = SysThemesUtil.getSysTheme(request);
    String lhgdialogTheme = SysThemesUtil.getLhgdialogTheme(sysTheme);
%>

t:dictSelect修改为,增加onchange方法。

 <t:dictSelect id="langCode" field="langCode" typeGroupCode="lang"
                                                              hasLabel="false"
                                                              extendJson="{style:'padding:2px; width:80px;',onchange='switchInternational()'}"
                                                              defaultVal="${lang}"></t:dictSelect>

每次切换成功后,重新加载页面。

//登录页面切换国际化
    function switchInternational() {
        $.ajax({
            url: "loginController.do?switchInternational&langCode=" + $("#langCode").val(),
            type: "POST",
            success: function (data) {
                    //location.reload(true);
                    window.location.reload(true); //强制从服务器重新加载当前页面
            }
        });
    }