request.getLocal();可以得到默认的语言,那如果指定呢?
1 你会看到许多网站都是采用一个参数的形似,比如 ?lang=zh_CN&id=。。
2 当然你可以把这个参数保存到cookie
3 或者干脆给每个做一个单独的链接,比如 /zh/....你可以到 遨游或者Firefox 的网站,包括微软的网站看看他们是如何切换语言的

解决方案 »

  1.   

    忘了说一句,如果你自己控制,你可以
    1 自己做一个Request的Wrapper,然后Override他的getLocal()方法,返回你自己的
    2 用Filter来截获Request
      

  2.   

    http://www.java2000.net/viewthread.jsp?tid=4486
    参考我的一个应用,你自己注意其中的如下部分class ReduceWrapper extends HttpServletResponseWrapper {   
      

  3.   

    1.所有的浏览器都可以改变语言,在工具,选项里面。spring可以通过request.getLocal()来读i18n文件。
    2.如果想让用户自己选择。那就要做链接,通过参数传进去。自己改变locale,来改变i18n文件
      

  4.   

    下面是copy的spring的配置  <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages" />
      </bean>  <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />  <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />  <bean id="defaultUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
    <property name="interceptors" ref="localeChangeInterceptor" />
    <property name="order">
    <value>1</value>
    </property>
      </bean>下面是想根据用户选择设置localeSessionLocaleResolver sessionLocale=new SessionLocaleResolver();
    switch (Integer.parseInt(language)) {
    case 0:
                  sessionLocale.setLocale(request, response, Locale.CHINA);
                  session.setAttribute(Globals.LOCALE_KEY, Locale.CHINESE); 
                  request.getLocale().setDefault(Locale.CHINESE);
    break;
    case 1:
    session.setAttribute(Globals.LOCALE_KEY, Locale.TAIWAN); 
                  sessionLocale.setLocale(request, response, Locale.TAIWAN);
    request.getLocale().setDefault(Locale.TAIWAN);
    break;
    case 2:
    session.setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH); 
                  sessionLocale.setLocale(request, response, Locale.ENGLISH);
    request.getLocale().setDefault(Locale.ENGLISH);
    break;
    default:
    session.setAttribute(Globals.LOCALE_KEY, Locale.CHINESE); 
                  sessionLocale.setLocale(request, response, Locale.CHINA);
            request.getLocale().setDefault(Locale.CHINESE);
    break;

    结果是全部无效.
      

  5.   

    被spring抢在前面了。你写个filter抢在spring前面试试。
      

  6.   

    http://www.java2000.net/viewthread.jsp?tid=4486 
    老紫竹给的这个链接,没权限拜读.