Exemple d’internationalisation ou de localisation de Struts

Exemple d'internationalisation ou de localisation Struts

Il s'agit d'un exemple de localisation Struts, affichant le message ou la base de contenu dans la langue sélectionnée spécifiée. Par défaut, Struts stockera un attribut Locale pour chaque utilisateur dans son contexte de session sous une clé «org.apache.struts.action.LOCALE», tout ce que vous avez à faire est de jouer avec cet attribut de session.

Téléchargez cet exemple de localisation Struts -Struts-Localization-Example.zip

1. Structure du projet

Ceci est la structure du projet.

Struts-localization-folder

2. Fichier de propriétés

Tous les messages de localisation sont déclarés dans le fichier de propriétés, au format «filename_locale_code.properties». Vous pouvez vérifier le code de paramètres régionaux dans la classeJava.Util.Locale. e.g

  • Anglais - Common.properties ou Common_en_US.properties

  • Chinois - Common_zh_CN.properties

  • France - Common_fr.properties

  • Allemand - Common_de.properties

Common.properties

#error message
error.common.username.required = Username is required
error.common.password.required = Password is required

#label message
label.common.message = localization example
label.common.username = Username
label.common.password = Password
label.common.button.submit = Submit

Common_de.properties

#error message
error.common.username.required = Benutzername ist erforderlich
error.common.password.required = Passwort ist erforderlich

#label message
label.common.message = Lokalisierung Beispiel
label.common.username = Benutzername
label.common.password = Kennwort
label.common.button.submit = Einreichen

3. Classe d'action

Créez une classe d'actions qui étend DispatchAction à des fins d'action multiples.

package com.example.common.action;

import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.Globals;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class LanguageSelectAction extends DispatchAction{

    public ActionForward chinese(ActionMapping mapping,ActionForm form,
        HttpServletRequest request,HttpServletResponse response)
    throws Exception {

        request.getSession().setAttribute(
                Globals.LOCALE_KEY, Locale.SIMPLIFIED_CHINESE);

        return mapping.findForward("success");
    }

    public ActionForward english(ActionMapping mapping,ActionForm form,
        HttpServletRequest request,HttpServletResponse response)
    throws Exception {

        request.getSession().setAttribute(
                Globals.LOCALE_KEY, Locale.ENGLISH);

        return mapping.findForward("success");
    }

    public ActionForward german(ActionMapping mapping,ActionForm form,
        HttpServletRequest request,HttpServletResponse response)
    throws Exception {

        request.getSession().setAttribute(
                Globals.LOCALE_KEY, Locale.GERMAN);

        return mapping.findForward("success");
    }

    public ActionForward france(ActionMapping mapping,ActionForm form,
        HttpServletRequest request,HttpServletResponse response)
    throws Exception {

        request.getSession().setAttribute(
                Globals.LOCALE_KEY, Locale.FRANCE);

        return mapping.findForward("success");
    }

}

4. Formulaire d'action

Créez un formulaire d'action pour contenir les données du nom d'utilisateur et du mot de passe, ainsi que pour la validation du formulaire.

package com.example.common.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class UserForm extends ActionForm{

    String username;
    String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public ActionErrors validate(ActionMapping mapping,
        HttpServletRequest request) {

        ActionErrors errors = new ActionErrors();

        if( getUsername() == null || ("".equals(getUsername())))
        {
           errors.add("common.username.err",
            new ActionMessage("error.common.username.required"));
        }

        if( getPassword() == null || ("".equals(getPassword())))
        {
           errors.add("common.password.err",
            new ActionMessage("error.common.password.required"));
        }

        return errors;
    }

    @Override
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        // reset properties
        username = "";
        password = "";
    }
}

5. JSP

Créez une page JSP pour afficher la sélection de la langue, la valeur du formulaire et également le message d'erreur. Le «/Locale.do?method=chinese» correspondra à la méthode DispatchActionchinese().


 +
: +
 +
: +
 +

6. struts-config.xml

Mets le tout ensemble.





    
        

    

    

        

        
            
        

        
            
        

    

    

7. wel.xml

Intégrez le framework Struts dans le fichier descripteur de déploiement Web.




  Maven Struts Examples

  
    action
    
        org.apache.struts.action.ActionServlet
    
    
        config
        
         /WEB-INF/struts-config.xml
        
    
    1
  

  
       action
       *.do
  

Capture d'écran

Vous pouvez changer l'interface par les liens linguistiques.

Interface anglaise

Struts-localization-english

Interface chinoise

Struts-localization-chinese

Interface France

Struts-localization-france

Interface allemande

Struts-localization-german