1. Nomeação do arquivo de recursos
O formato de nomenclatura dos arquivos de recursos internacionais é o seguinte:
Basename_language_country.properties basename_language.properties basename.properties
Onde a base de base é o nome base do arquivo de recursos, o idioma e o país deve ser o idioma e o país apoiado por Java. Os códigos de idioma e país que recebem suporte de Java são os seguintes:
Locale [] LOCALES = LOCALE.GETAVALABLELOCALES (); para (Locale Locale: Locales) {System.out.println ("country:" + loce.getCountry () + ", idioma:" + loce.getLanguage ()); }2. Configuração e aquisição de arquivos de recursos
Crie um novo arquivo de recurso. Em um ambiente chinês, o valor do valor no arquivo de recursos precisa ser convertido ASCII. Você pode entrar no nativo2ascii após a corrida. Além disso, este artigo usa o plug-in de arquivo de atributo Eclipse, por isso é exibido diretamente em chinês. O arquivo de propriedades está configurado da seguinte forma:
info_en_us.properties
nome de usuário = zhangsaninfo_zh_cn.propertiesusername = zhangsaninfo_zh.propertiesusername = li si senha = lisiinfo.propertiesusername = wangwu senha = wangwuemail = caixa de correio
Além disso, se você precisar ler o valor no arquivo de propriedades, precisará configurar constantes no arquivo struts-config.xml.
Er
A maneira de obter arquivos de recursos na página é usar o struts tag <s: text/>, como mostrado abaixo:
<!-O arquivo de recurso recebe o valor da chave-> <S: Text Name = "UserName"/> <S: Text Name = "Password"/> <S: Text Name = "Email"/>
Além disso, se você obtiver o valor da chave no formulário, o método é o seguinte:
<!- onde o valor da chave é o valor da chave no arquivo de recursos, e a função é adicionar um nome de etiqueta à caixa de entrada, que é o mesmo que o valor do atributo da etiqueta. No entanto, em constantes, o valor da chave não pode ser obtido no arquivo de atributo. -> <s: textfield name = "login.username" key = "userName"> </s: textfield>
Observe também que quando a constante <constante name = "struts.ui.theMe" value = "simples"/> for usada, o valor da chave em <s: textfield/> não pode obter o valor correspondente do arquivo de atributo.
A página final mostra os resultados da seguinte forma:
A partir dos arquivos de configuração acima, podemos ver a fonte dos valores desses três valores. A partir disso, podemos ver que a ordem de pesquisa do arquivo de recursos é a seguinte:
Primeiro, procure o valor da chave relevante em Basename_language_country.properties. Caso contrário, procure o valor da chave relevante em Basename_language.properties. Caso contrário, procure o valor da chave relevante no nome da base.properties. Caso contrário, procure o valor da chave relevante. Caso contrário, será exibido como nome.
3. Uso de espaço reservado em arquivos de atributo
O conteúdo de configuração do arquivo de propriedades é o seguinte:
nome de usuário = zhang san, {0}, {1}
Use o valor da tag <s: param> </s: param> para passar os parâmetros no jsp.
<s: text name = "nome de usuário"> <s: param> hello </s: param> <s: param> bem -vindo! </s: param> </s: text>
4. Arquivos de recursos de aplicativos em ação
Para usar os arquivos de recursos em ação, você precisa herdar a classe Actionupport. A classe Actionupport implementa as duas interfaces: TextProvider e LocaleProvider. O TextProvider fornece um método para obter o método GetText () do Valor GetText (), enquanto a interface do LocaleProvider possui apenas um método getLocale () para obter a localidade.
Modifique o arquivo de configuração info_zh_cn.properties:
nome de usuário = zhang san, {0}, {1} userNameError = o nome do usuário não pode estar vazio! Por favor, confirme!Em ação, o método de obter o arquivo de propriedade é o seguinte:
this.getText ("UserNameError");Use os espaços reservados em ação para operar, o código é o seguinte:
this.getText ("nome de usuário", new String [] {"Hello", "Welcome"});5. Arquivos de recursos em todo o pacote
A ação neste pacote e a subpackage podem acessar o arquivo de recursos. O posicionamento está sob um determinado pacote e o formato de nomenclatura é: package_language_country.properties. Onde o pacote é um formato fixo. O arquivo de configuração package_zh_cn.properties é o seguinte:
nome de usuário = nome de usuário em escopo de pacote
Na ação abaixo do pacote, você pode usar getText ("nome de usuário") para obtê -lo.
6. Arquivos de recursos no escopo da ação
Você pode especificar um arquivo de propriedade para uma ação separada e colocá -la em um diretório do mesmo nível que uma ação. O formato do nome é
ActionName_Language_Country.properties
.
Configure o arquivo de propriedades do escopo de ação:
nome de usuário = nome de usuário dentro da faixa de ação
O método getText ("nome de usuário") também é usado na ação para obter o valor.
7. A ordem de carregamento dos arquivos de recursos
Para o uso do valor getText (key) para ação, quando existem ambos os arquivos de propriedade no escopo da ação, arquivos de propriedade no escopo do pacote e arquivos de propriedade global, a ordem de carregamento é a seguinte:
Primeiro, se o valor da chave existe no arquivo de atributo na ação especificada. Se existir, o valor será levado. Se não existir, procure se o arquivo de atributo do intervalo de pacotes com o valor da chave especificado existe no pacote de nível superior da ação atual. Se não existir, continue pesquisando no pacote de nível anterior. Se não foi encontrado, procure se o valor da chave especificado existe no arquivo de atributo global. Se o valor da chave especificado existir, o valor correspondente ao valor da chave será retirado. Se não existir, o padrão é o valor da chave.
Além disso, quando existem vários arquivos de recursos no arquivo de atributo global, você precisa pesquisar na ordem de Basename_language_country, Basename_language e Basename.
8. Obtenha arquivos de recursos na página
(1) Use <s: i18n/> para acessar um arquivo de recurso.
O código é o seguinte:
Use a tag i18n para obter o arquivo de atributo-> <!-Obtenha o arquivo de recursos no escopo do pacote-> <s: i18n name = "com/struts/package"> <s: nome do texto "Nome de uso"> </s: text> </s: i18n> <!-File de recurso no escopo da ação-> <s: name de texto = "nome de usuário"> </s: text> </s: i18n>
(2) Uso de <fmt/>
O JSTL inclui internacionalização e formatação de tags. O uso de tags de internacionalização permite que uma página JSP envie expressões de página em diferentes idiomas, de acordo com a área em que o visitante está localizado. Aqui você precisa usar o Maven para adicionar pacotes de jar de dependência. O arquivo de configuração é o seguinte:
<!-Apresentando JSTL Tag Library-> <Depencence> <PuerpId> jstl </groupId> <TRARFACTID> jstl </stutifactId> <versão> 1.2 </versão </dependency>
Use a tag FMT na página JSP e o código do aplicativo é o seguinte:
<!-Usando o JSTL Tag FMT-> <!-Configuração da localidade substituirá as reclamações passadas pelo cliente-> <fmt: setLocale value = "zh_cn" scope = "request"/> <!-carregue um conjunto de recursos e salve-o na variável El. O nome da base é o nome base. Se estiver no escopo do pacote, é com.struts.package e, sob o escopo da ação, é com.struts.service.loginservice-> <fmt: setBundle Basename = "info" scope = "request" var = "Basename"/> <fmt: message key = "username" bungus "{Basename"/> <fmt: key = "username" <fmt: param value = "hello"/> <fmt: param value = "wolcome"/> </fmt: message> <br/> <!-fmt: pacote define um conjunto de recursos que é acessível apenas no corpo de tag-> <!-arquivo de recurso no pacote scope-> <fmt: bundle basename = "com.stuts.pack </fmt: pacote> <!-arquivo de recursos no escopo da ação-> <fmt: pacote basename = "com.struts.service.loginservice"> <fmt: message key = "userName"/> </fmt: bundle>