问题改变语言应用

时间:2010-11-10 10:00:39

标签: java jsf internationalization

正如我在this question中提到的那样,我用这种方法解决了我的问题:

  1. loging.xhtm 中,例如:

    <f:view locale="#{languageDetails.locale}" >
    <head>
    .....
    <f:loadBundle basename="messages.Messages" var="msg1"/>
    .....
    

                                                                                                                                                                  

      </h:form>
    

    </body>
    </f:view>
    
  2. 2.在java源代码中我也做了一些改动:

    public class LanguageDetails {
    
        private static String locale = Locale.getDefault().getDisplayLanguage();
    
          public void setLocale(String locale1) {
            this.locale = locale1;
          }
    
          public synchronized String getLocale() {
            return locale;
          }
    
          public synchronized String changeLanguage() {
            return "changed";
          }
    }
    

    但是现在我正在尝试使用相同的选项,不只是在“登录”页面中,而是在其他页面中 在其他页面中添加相同的代码不起作用,因为未调用函数setLocale。有什么帮助吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

我意识到,放

是非常重要的
<f:view locale="#{languageDetails.locale}" >
....
</f:view>

或者在每个文件中,或者只在顶级文件中。之后,在必要时添加<h:selectOneMenu>,但要记住,您不能拥有所有<h:form><a4j:form> ......等等,这会使事情变得更复杂。我把这个表单标签放在顶级文件上,现在一切正常 希望这可以帮助某人。