Struts 2 - exemple d’i18n ou de localisation

Struts 2 - i18n ou exemple de localisation

Un exemple d'internationalisation (i18n), de localisation (i10n) ou multilingue de Struts 2 pour montrer l'utilisation d'un ensemble de ressources pour afficher le message à partir de différentes langues. Dans cet exemple, vous allez créer un écran de connexion simple, afficher le message du bundle de ressources via les composants de l'interface utilisateur Struts 2 et modifier la base de paramètres régionaux sur l'option de langue sélectionnée.

1. Structure du projet

La structure du projet pour cet exemple

Struts2 localization folder structure

2. Fichier de propriétés

Assurez-vous que le fichier de propriétés est nommé en tant que code spécifié par le pays.

Dans certains caractères de type «non européens» ou «non anglais», vous devez toujours encoder le contenu avecnative2ascii tool.

global.properties

#Global messages
global.username = Username
global.password = Password
global.submit = Submit

global_zh_CN.properties

#Global messages
global.username = \u7528\u6237\u540d
global.password = \u5bc6\u7801
global.submit=\u63d0\u4ea4

global_fr.properties

#Global messages
global.username = Nom d'utilisateur
global.password = Mot de passe
global.submit = Soumettre

global_de.properties

#Global messages
global.username = Benutzername
global.password = Kennwort
global.submit = Einreichen

Veuillez lire ceStruts 2 resource bundle example pour comprendre comment Struts 2 recherche automatiquement le fichier de propriétés.

3. action

Deux classes d'action, leLocaleAction ne fait essentiellement rien, et leLoginAction fera une simple validation et affichera le message d'erreur du bundle de ressources viagetText().

LocaleAction.java

package com.example.common.action;

import com.opensymphony.xwork2.ActionSupport;

public class LocaleAction extends ActionSupport{

    //business logic
    public String execute() {
        return "SUCCESS";
    }
}

LoginAction.java

package com.example.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

    private String username;
    private String password;

    //...getter and setter methods

    //business logic
    public String execute() {
        return "SUCCESS";
    }

    //simple validation
    public void validate(){
        if("".equals(getUsername())){
            addFieldError("username", getText("username.required"));
        }
        if("".equals(getPassword())){
            addFieldError("password", getText("password.required"));
        }
    }
}

4. Voir page

Une page de connexion avec une zone de texte, un mot de passe et soumettre des composants d'interface utilisateur.

Pour prendre en charge la localisation Struts 2, vous DEVEZ déclarer les<%@ page contentType=”text/html;charset=UTF-8″ %> dans votre page d'affichage, sinon vous aurez des problèmes pour afficher correctement les «données UTF-8», en particulier les caractères chinois. Lisez cet article surStruts 2 Chinese localization issue.

login.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>





Struts 2 localization example

en zh_CN de fr English Chinese German France

Pour changer les paramètres régionaux par défaut, il vous suffit de déclarer un paramètre“request_locale ”, de définir votre code de langue préféré et de passer à une classe Action. Dans Struts 2, l'intercepteurcom.opensymphony.xwork2.interceptor.I18nInterceptor, déclaré dans lesstruts-default.xml, détournera votre classe Action et gérera les paramètres régionaux en conséquence.

5. Afficher le message de regroupement de ressources?

Dans Struts 2, il existe de nombreuses façons d'afficher la base de messages du groupe de ressources dans la langue ou les paramètres régionaux sélectionnés. Pour des exemples,




Dans Struts 1, il existe unbean:message standard pour afficher le message de regroupement de ressources, ce qui est préférable. Mais dans Struts 2, il existe de nombreuses façons équivalentes d'afficher le message du groupe de ressources (même le travail interne est différent), c'est assez confus au premier coup d'œil. Fondamentalement, peu importe ce que vous choisissez, Struts 2 affichera également correctement le message de regroupement de ressources.

6. struts.xml

Fichier de configuration Struts 2, liez le tout ensemble.





    
    

    
       
        pages/login.jsp
       
       
        pages/welcome.jsp
        pages/login.jsp
       
    

    
       
        user/pages/login.jsp