1. Naming de archivos de recursos
El formato de nombres de los archivos de recursos internacionales es el siguiente:
basename_language_country.properties basename_language.properties basename.properties
Donde Basename es el nombre base del archivo de recursos, el idioma y el país deben ser el idioma y el país apoyados por Java. Los códigos de idioma y país que obtienen soporte de Java son los siguientes:
Locale [] locales = locale.getAvailableLocales (); for (locale locale: locales) {System.out.println ("país:" + locale.getCountry () + ", lenguaje:" + locale.getLanguage ()); }2. Configuración y adquisición de archivos de recursos
Cree un nuevo archivo de recursos. En un entorno chino, el valor de valor en el archivo de recursos debe convertirse ASCII. Puede ingresar national2ascii después de correr. Además, este artículo utiliza el complemento del archivo de atributo Eclipse, por lo que se muestra directamente en chino. El archivo de propiedades está configurado de la siguiente manera:
info_en_us.properties
nombre de usuario = zhangsaninfo_zh_cn.propertiesUsername = zhangsaninfo_zh.propertiesUsername = li si contraseña = lisiinfo.propertiesUsername = wangwu contraseña = wangwUeMail = buzón = buzón = buzón =
Además, si necesita leer el valor en el archivo de propiedades, debe configurar constantes en el archivo struts-config.xml.
<
La forma de obtener archivos de recursos en la página es usar la etiqueta Struts <S: Text/>, como se muestra a continuación:
<!-El archivo de recursos obtiene el valor clave-> <s: text name = "username"/> <s: text name = "contraseña"/> <s: text name = "correo electrónico"/>
Además, si obtiene el valor clave en el formulario, el método es el siguiente:
< Sin embargo, en constantes, el valor clave no se puede obtener del archivo de atributo. -> <s: textfield name = "Login.Username" Key = "UserName"> </S: TextField>
También tenga en cuenta que cuando se usa la constante <Constant name = "Struts.Ui.Theme" Value = "Simple"/>, el valor clave en <S: TextField/> no puede obtener el valor correspondiente del archivo de atributo.
La página final muestra los resultados de la siguiente manera:
De los archivos de configuración anteriores, podemos ver la fuente de los valores de estos tres valores. A partir de esto, podemos ver que la orden de búsqueda del archivo de recursos es el siguiente:
Primero, busque el valor clave relevante de Basename_Language_country.Properties. Si no, busque el valor clave relevante en Basename_Language.Properties. Si no, busque el valor clave relevante en Basename.Properties. Si no, busque el valor clave relevante. Si no, se mostrará como nombre.
3. Uso de marcadores de posición en archivos de atributos
El contenido de configuración del archivo de propiedades es el siguiente:
nombre de usuario = zhang san, {0}, {1}
Use la etiqueta <s: param> valor </s: param> para pasar los parámetros en jsp.
<s: text name = "username"> <s: param> hola </s: param> <s: param> bienvenido! </s: param> </s: text>
4. Archivos de recursos de aplicación en acción
Para usar archivos de recursos en acción, debe heredar la clase ActionSupport. La clase ActionSupport implementa las dos interfaces: TextProvider y LocalProvider. TextProvider proporciona un método para obtener el valor del archivo de recurso getText (), mientras que la interfaz LocalProvider solo tiene un método getLocale () para obtener localidad.
Modificar el archivo de configuración info_zh_cn.properties:
nombre de usuario = zhang san, {0}, {1} UserNameError = el nombre de usuario no puede estar vacío! ¡Confirme!En acción, el método para obtener el archivo de propiedades es el siguiente:
this.gettext ("UserNameError");Use marcadores de posición en acción para operar, el código es el siguiente:
this.gettext ("nombre de usuario", nueva cadena [] {"hola", "bienvenida"});5. Archivos de recursos en todo el paquete
La acción en este paquete y el subpackage puede acceder al archivo de recursos. La colocación está bajo un paquete determinado, y el formato de nombres es: paquete_language_country.properties. Donde el paquete es un formato fijo. El archivo de configuración paquete_zh_cn.properties es el siguiente:
nombre de usuario = nombre de usuario bajo el alcance del paquete
En la acción debajo del paquete, puede usar GetText ("Nombre de usuario") para obtenerlo.
6. Archivos de recursos en el alcance de la acción
Puede especificar un archivo de propiedad para una acción separada y colocarlo en un directorio del mismo nivel que una acción. El formato de nombre es
ActionName_Language_country.Properties
.
Configure el archivo de propiedades del alcance de la acción:
nombre de usuario = nombre de usuario dentro del rango de acción
El método GetText ("Nombre de usuario") también se usa en la acción para obtener el valor.
7. El orden de carga de los archivos de recursos
Para el uso del valor de getText (clave) para la acción, cuando hay ambos archivos de propiedad dentro del alcance de la acción, archivos de propiedad dentro del alcance del paquete y archivos de propiedad global, el orden de carga es el siguiente:
Primero, si el valor clave existe en el archivo de atributo en la acción especificada. Si existe, se tomará el valor. Si no existe, busque si el archivo de atributo de rango de paquete con el valor de clave especificado existe en el paquete de nivel superior de la acción actual. Si no existe, continúe buscando en el paquete de nivel anterior. Si no se ha encontrado, busque si el valor de clave especificado existe en el archivo de atributos globales. Si existe el valor de clave especificado, se toma el valor correspondiente al valor clave. Si no existe, el valor predeterminado es el valor clave.
Además, cuando hay múltiples archivos de recursos en el archivo de atributos globales, debe buscar en el orden de Basename_Language_Country, Basename_Language y Basename.
8. Obtenga archivos de recursos en la página
(1) Use <S: i18n/> para acceder a un archivo de recursos.
El código es el siguiente:
< <s: text name = "username"> </s: text> </s: i18n>
(2) Uso de <fmt/>
JSTL incluye las etiquetas de internacionalización y formato. El uso de etiquetas de internacionalización permite que una página JSP salga de expresiones de página en diferentes idiomas de acuerdo con el área donde se encuentra el visitante. Aquí debe usar Maven para agregar paquetes de jarra de dependencia. El archivo de configuración es el siguiente:
<!-Introducción de la biblioteca de etiquetas JSTL-> <Spendency> <MoupRupid> jstl </proupid> <artifactid> jstl </artifactid> <versión> 1.2 </versión> </pendency>
Use la etiqueta FMT en la página JSP, y el código de aplicación es el siguiente:
< Basename es el nombre base. Si está en el alcance del paquete, es com.struts.package, y bajo el alcance de la acción, es com.struts.service.loginservice-> <fmt: setBundle basename = "info" scope = "request" var = "basename"/> <fmt: key de mensaje = "username" bUndle = "$ {basename}" <!-Basename "/> <fmt: key de mensaje =" username "BUNDLE =" $ {basename} "<!-Basename" <fmt: param value = "hello"/> <fmt: param valor = "bienvenido"/> </fmt: mensaje> <br/> <!-fmt: bundle set un conjunto de recursos que solo se puede acceder en el cuerpo de la etiqueta-> <!-Archivo de recursos en el alcance del paquete-> <fmt: Bundle BaseNeNeM </fmt: bundle> <!-Archivo de recursos en el alcance de la acción-> <fmt: bundle basename = "com.struts.service.loginservice"> <fmt: key = "username"/> </fmt: bundle>