需求如下
官方版本只能选择之后,登录进去才能显示国际化效果.但现在项目需要切换下拉框选择语言后,登录页也能立刻显示对应语言的页面.
中文
英文
实现代码:
在LoginController方法中加入(需要给该接口跳过权限验证,项目是在xml文件中配置,有的是通过注解)
@JAuth(auth = Permission.SKIP_AUTH)
/**
* 登录页面国际化切换
* @param req
* @return
*/
@RequestMapping(params = "`switchLanguage`")
public String `switchLanguage`(HttpServletRequest req) {
// 语言选择
String langCode = req.getParameter("langCode");
if (langCode != null) {
HttpSession session = req.getSession();
session.setAttribute("lang", langCode);
}
return "login/login";
}
在login.jsp中加入下拉框选择语言的方法
//登录页面国际化切换
function `switchLanguage`() {
$.ajax({
url:"loginController.do?switchInternational&langCode=" + $("#langCode").val(),
type:"GET",
success:function (data) {
window.location.reload(true);//强制从服务器重新加载当前页面
}
});
}