当前位置:编程学习 > JAVA >>

spring MVC 如何在java端获取国际化message

在jsp端我用的是JSTL的<fmt:message>,在java端怎么获取国际化消息那?通过那个类和方法那? spring mvc 国际化 jstl --------------------编程问答-------------------- <beans:bean
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
id="messageSource" p:basenames="WEB-INF/i18n/messages"
p:fallbackToSystemLocale="false" />
配置上是这么做,获取直接用Spring的getBean获取 --------------------编程问答-------------------- spring mvc我代码基本看过,最经典的,可扩展的
public static String getLocaleMessage(HttpServletRequest request,Object[] args,String code){
        WebApplicationContext ac = RequestContextUtils.getWebApplicationContext(request);
        return ac.getMessage(code,args, RequestContextUtils.getLocale(request));
    }
args可以为null,如果你request也不提供的话可以通过threadLocale获得request
/**
     * @return {@link HttpServletRequest}
     */
    private static HttpServletRequest getRequest() {
        return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    } --------------------编程问答-------------------- 国际化LocaleResolver有四个实现类
固定,根据header,session,cookie
后面连个要自己设,
主题页有类似功能 --------------------编程问答-------------------- 如果没有request,
就直接取
     public static String getMessage(String key, Locale locale)
    {
        
        ResourceBundle resourceBundle = ResourceBundle.getBundle(Global.RESOURCES_PATH,
                locale);
        
        if (resourceBundle.containsKey(key))
        {
            return resourceBundle.getString(key);
        }
        
        return key;
    }
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,