类org.springframework.web.servlet.i18n.SessionLocaleResolver源码实例Demo

下面列出了怎么用org.springframework.web.servlet.i18n.SessionLocaleResolver的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer,
                              NativeWebRequest webRequest) throws Exception {
    mavContainer.setRequestHandled(true);
    HttpServletResponse httpServletResponse = webRequest.getNativeResponse(HttpServletResponse.class);
    httpServletResponse.setContentType(CONTENT_TYPE);
    ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(httpServletResponse);
    Locale locale = (Locale)webRequest.getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,
        RequestAttributes.SCOPE_SESSION);
    String message;
    try {
        message = messageSource.getMessage(DEFAULT_SUCCESS_CODE, new Object[0], locale);
    } catch (NoSuchMessageException e) {
        message = DefaultMessagesProperties.getMessage(DEFAULT_SUCCESS_CODE);
    }
    JsonResponse jsonResponse = new JsonResponse(DEFAULT_SUCCESS_CODE, message, returnValue);
    outputMessage.getBody().write(StringUtils.toBytes(JsonUtils.toJson(jsonResponse)));
    outputMessage.getBody().flush();
}
 
源代码2 项目: stone   文件: OptionController.java
/**
 * 保存设置选项
 *
 * @param options options
 *
 * @return JsonResult
 */
@PostMapping(value = "/save")
@ResponseBody
public JsonResult saveOptions(@RequestParam Map<String, String> options, HttpSession session) {
    try {
        optionsService.saveOptions(options);
        //刷新options
        configuration.setSharedVariable("options", optionsService.findAllOptions());
        HaloConst.OPTIONS.clear();
        HaloConst.OPTIONS = optionsService.findAllOptions();
        session.removeAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
        log.info("List of saved options: " + options);
        return new JsonResult(ResultCodeEnum.SUCCESS.getCode(), localeMessageUtil.getMessage("code.admin.common.save-success"));
    } catch (Exception e) {
        log.error("Save settings option failed: {}", e.getMessage());
        return new JsonResult(ResultCodeEnum.FAIL.getCode(), localeMessageUtil.getMessage("code.admin.common.save-failed"));
    }
}
 
源代码3 项目: EasyReport   文件: LocaleUtils.java
/**
 * 根据当前request对象中的locale(Header的Accept属性)初始化系统国际化语言区域环境
 *
 * @param request  当前请求对象
 * @param response 当前响应对象
 */
public static void setInitLocale(final HttpServletRequest request, final HttpServletResponse response) {
    final Locale locale = request.getLocale();
    log.info("Init locale from user request,country:{},lang:{}", locale.getCountry(), locale.toLanguageTag());

    if (localeResolver instanceof CookieLocaleResolver) {
        final CookieLocaleResolver cookieLocaleResolver = (CookieLocaleResolver)localeResolver;
        final Cookie cookie = WebUtils.getCookie(request, cookieLocaleResolver.getCookieName());
        if (cookie == null) {
            setLocale(locale.toLanguageTag(), request, response);
        }
    }
    if (localeResolver instanceof SessionLocaleResolver) {
        final Locale sessionLocale = (Locale)WebUtils.getRequiredSessionAttribute(
            request, SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
        if (sessionLocale == null) {
            setLocale(locale.toLanguageTag(), request, response);
        }
    }
}
 
源代码4 项目: supplierShop   文件: I18nConfig.java
@Bean
public LocaleResolver localeResolver()
{
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
    return slr;
}
 
源代码5 项目: SENS   文件: LocaleInterceptor.java
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if (StringUtils.equals(LocaleEnum.EN_US.getValue(), SensConst.OPTIONS.get(BlogPropertiesEnum.BLOG_LOCALE.getProp()))) {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en", "US"));
    } else {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh", "CN"));
    }
    return true;
}
 
@Override
public void doSomething(HttpServletRequest request) throws ServletException, IllegalAccessException {
	WebApplicationContext wac = RequestContextUtils.findWebApplicationContext(request);
	if (!(wac instanceof ComplexWebApplicationContext)) {
		throw new ServletException("Incorrect WebApplicationContext");
	}
	if (WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class) == null) {
		throw new ServletException("Not in a MultipartHttpServletRequest");
	}
	if (request.getParameter("fail") != null) {
		throw new ModelAndViewDefiningException(new ModelAndView("failed1"));
	}
	if (request.getParameter("access") != null) {
		throw new IllegalAccessException("illegal access");
	}
	if (request.getParameter("servlet") != null) {
		throw new ServletRequestBindingException("servlet");
	}
	if (request.getParameter("exception") != null) {
		throw new RuntimeException("servlet");
	}
	if (!(RequestContextUtils.getLocaleResolver(request) instanceof SessionLocaleResolver)) {
		throw new ServletException("Incorrect LocaleResolver");
	}
	if (!Locale.CANADA.equals(RequestContextUtils.getLocale(request))) {
		throw new ServletException("Incorrect Locale");
	}
	if (!Locale.CANADA.equals(LocaleContextHolder.getLocale())) {
		throw new ServletException("Incorrect Locale");
	}
	if (RequestContextUtils.getTimeZone(request) != null) {
		throw new ServletException("Incorrect TimeZone");
	}
	if (!TimeZone.getDefault().equals(LocaleContextHolder.getTimeZone())) {
		throw new ServletException("Incorrect TimeZone");
	}
	if (!(RequestContextUtils.getThemeResolver(request) instanceof SessionThemeResolver)) {
		throw new ServletException("Incorrect ThemeResolver");
	}
	if (!"theme".equals(RequestContextUtils.getThemeResolver(request).resolveThemeName(request))) {
		throw new ServletException("Incorrect theme name");
	}
	RequestContext rc = new RequestContext(request);
	rc.changeLocale(Locale.US, TimeZone.getTimeZone("GMT+1"));
	rc.changeTheme("theme2");
	if (!Locale.US.equals(RequestContextUtils.getLocale(request))) {
		throw new ServletException("Incorrect Locale");
	}
	if (!Locale.US.equals(LocaleContextHolder.getLocale())) {
		throw new ServletException("Incorrect Locale");
	}
	if (!TimeZone.getTimeZone("GMT+1").equals(RequestContextUtils.getTimeZone(request))) {
		throw new ServletException("Incorrect TimeZone");
	}
	if (!TimeZone.getTimeZone("GMT+1").equals(LocaleContextHolder.getTimeZone())) {
		throw new ServletException("Incorrect TimeZone");
	}
	if (!"theme2".equals(RequestContextUtils.getThemeResolver(request).resolveThemeName(request))) {
		throw new ServletException("Incorrect theme name");
	}
}
 
源代码7 项目: open-capacity-platform   文件: I18nConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
    sessionLocaleResolver.setDefaultLocale(Locale.CHINA);
    return sessionLocaleResolver;

}
 
源代码8 项目: stone   文件: LocaleInterceptor.java
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    final Object attribute = request.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
    if (null != attribute) {
        return true;
    }
    if (StrUtil.equals(LocaleEnum.EN_US.getValue(), HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_LOCALE.getProp()))) {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en", "US"));
    } else {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh", "CN"));
    }
    return true;
}
 
源代码9 项目: stone   文件: WebMvcAutoConfiguration.java
/**
 * 国际化设置
 *
 * @return LocaleResolver
 */
@Bean
public LocaleResolver localeResolver() {
    final SessionLocaleResolver slr = new SessionLocaleResolver();
    slr.setDefaultLocale(Locale.CHINA);
    return slr;
}
 
源代码10 项目: ruoyiplus   文件: I18nConfig.java
@Bean
public LocaleResolver localeResolver()
{
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
    return slr;
}
 
源代码11 项目: fw-spring-cloud   文件: I18nConfig.java
/**
 * session区域解析器
 * @return
 */
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver resolver = new SessionLocaleResolver();
    resolver.setDefaultLocale(Locale.CHINA);

    return resolver;
}
 
源代码12 项目: springBoot   文件: LocaleConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.US);
    return slr;
}
 
源代码13 项目: springboot-learn   文件: HelloController.java
/**
 * 切换语言,只作用于session
 *
 * @param request
 * @param lang
 * @return
 */
@RequestMapping("/i18n")
public String changeSessionLanauage(HttpServletRequest request, String lang) {
    System.out.println(lang);
    if (CommonConsts.LANG_ZH.equals(lang)) {
        //代码中即可通过以下方法进行语言设置
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh", "CN"));
    } else if (CommonConsts.LANG_EN.equals(lang)) {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en", "US"));
    }
    return "redirect:/hello";
}
 
源代码14 项目: springboot-learn   文件: I18nConfig.java
/**
 * Session方式
 *
 * @return
 */
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    //设置默认区域
    slr.setDefaultLocale(Locale.US);

    return slr;
}
 
源代码15 项目: FlyCms   文件: WebMvcConfig.java
@Bean
public LocaleResolver localeResolver() {
	SessionLocaleResolver slr = new SessionLocaleResolver();
	// 默认语言
	slr.setDefaultLocale(Locale.CHINA);
	return slr;
}
 
源代码16 项目: blog-sharon   文件: LocaleInterceptor.java
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if (StrUtil.equals(LocaleEnum.EN_US.getValue(), HaloConst.OPTIONS.get(BlogPropertiesEnum.BLOG_LOCALE.getProp()))) {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en", "US"));
    } else {
        request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh", "CN"));
    }
    return true;
}
 
源代码17 项目: blog-sharon   文件: WebMvcAutoConfiguration.java
/**
 * 国际化设置
 *
 * @return LocaleResolver
 */
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    slr.setDefaultLocale(Locale.CHINA);
    return slr;
}
 
源代码18 项目: RuoYi   文件: I18nConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
    return slr;
}
 
源代码19 项目: LuckyFrameWeb   文件: I18nConfig.java
@Bean
public LocaleResolver localeResolver()
{
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
    return slr;
}
 
源代码20 项目: auth-server   文件: WebConfig.java
/**
 * <p>
 * Resolver for localizations.
 * </p>
 */
@Bean
public LocaleResolver localeResolver() {
  SessionLocaleResolver slr = new SessionLocaleResolver();
  slr.setDefaultLocale(Locale.US);
  return slr;
}
 
源代码21 项目: spring-boot-ddd   文件: AppConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    Locale ptBr = new Locale("pt", "BR");
    slr.setDefaultLocale(ptBr);
    return slr;
}
 
源代码22 项目: wolf   文件: LocaleConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.CHINA);
    return slr;
}
 
源代码23 项目: SuperBoot   文件: LocaleConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // 默认语言
    slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
    return slr;
}
 
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    if (Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication()).isPresent() &&
            SecurityContextHolder.getContext().getAuthentication().getPrincipal()
            instanceof User) {
        try {
            User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
            if (Optional.ofNullable(request.getSession()).isPresent()
                    && Optional.ofNullable(user).isPresent()) {
                if (!Optional.ofNullable(request.getSession()
                        .getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME)).isPresent() ||
                        !request.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME)
                                .equals(user.getLanguage().getLocale())) {

                    request.getSession().setAttribute(
                            SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,
                            user.getLanguage().getLocale());
                }
            }
        } catch (ClassCastException e){
            User invalidUSer = User.builder().name("INVALID USER").tenant(Tenant.builder().name("INVALID TENANT").build()).build();
LOG.error("Invalid user type on session", 
            		invalidUSer.toURI(),
            		invalidUSer.getTenant().getLogLevel(),
            		e);
        }

    }

    return super.preHandle(request, response, handler);
}
 
源代码25 项目: find   文件: AppConfiguration.java
@Bean
public LocaleResolver localeResolver() {
    final SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
    sessionLocaleResolver.setDefaultLocale(Locale.ENGLISH);

    return sessionLocaleResolver;
}
 
源代码26 项目: pybbs   文件: IndexController.java
@GetMapping("changeLanguage")
public String changeLanguage(String lang, HttpSession session, HttpServletRequest request) {
    String referer = request.getHeader("referer");
    if ("zh".equals(lang)) {
        session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, Locale.SIMPLIFIED_CHINESE);
    } else if ("en".equals(lang)) {
        session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, Locale.US);
    }
    return StringUtils.isEmpty(referer) ? redirect("/") : redirect(referer);
}
 
源代码27 项目: hermes   文件: SpringWebApp.java
@Override
public Locale getLocale() {
	Locale locale = Locale.class.cast(WebUtils.getSessionAttribute(request,
			SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME));
	if (locale == null) {
		locale = request.getLocale();
	}
	return locale;
}
 
@Bean
public LocaleResolver localeResolver() {
	SessionLocaleResolver slr = new SessionLocaleResolver();
	slr.setDefaultLocale(Locale.US);

	return slr;
}
 
private JsonResponse buildJsonResponse(HttpServletRequest request, Throwable throwable, String errorId) {
    while (throwable.getCause() != null) {
        throwable = throwable.getCause();
    }
    String code;
    Object[] args = new Object[0];
    Object data = null;
    if (throwable instanceof ConstraintViolationException) {
        ConstraintViolationException constraintViolationException = (ConstraintViolationException)throwable;
        code = "YA-400";
        data = new ArrayList<>();
        for (ConstraintViolation<?> constraintViolation : constraintViolationException.getConstraintViolations()) {
            Map<String, String> map = new HashMap<>();
            map.put("message", constraintViolation.getMessage());
            map.put("propertyPath", constraintViolation.getPropertyPath().toString());
            ((List)data).add(map);
        }
    } else if (throwable instanceof BusinessException) {
        BusinessException businessException = (BusinessException)throwable;
        code = businessException.getCode();
        args = businessException.getArgs();
        if (request.getSession() == null) {
            code = "YA-400";
        }
    } else {
        code = "YA-500";
        args = new Object[] {errorId};
    }
    Locale locale = (Locale)request.getSession().getAttribute(
        SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
    String message;
    try {
        message = messageSource.getMessage(code, args, locale);
    } catch (NoSuchMessageException e) {
        if (DefaultMessagesProperties.contains(code)) {
            message = DefaultMessagesProperties.getMessage(code, args);
        } else if (throwable instanceof BusinessException && throwable.getMessage() != null) {
            message = throwable.getMessage();
        } else {
            throw e;
        }
    }
    return new JsonResponse(code, message, data);
}
 
源代码30 项目: SENS   文件: MvcConfig.java
@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    slr.setDefaultLocale(Locale.CHINA);
    return slr;
}
 
 同包方法