Struts Internationalisierungs- oder Lokalisierungsbeispiel

Beispiel für die Internationalisierung oder Lokalisierung von Streben

Dies ist ein Beispiel für die Struts-Lokalisierung, in dem die Nachricht oder die Inhaltsbasis in der angegebenen ausgewählten Sprache angezeigt wird. Standardmäßig speichert Struts ein Gebietsschema-Attribut für jeden Benutzer in seinem Sitzungskontext unter einem Schlüssel „org.apache.struts.action.LOCALE“. Sie müssen lediglich mit diesem Sitzungsattribut herumspielen.

Laden Sie dieses Beispiel für die Struts-Lokalisierung herunter -Struts-Localization-Example.zip

1. Projektstruktur

Dies ist die Projektstruktur.

Struts-localization-folder

2. Eigenschaftendatei

Alle Lokalisierungsnachrichten werden in der Eigenschaftendatei deklariert und im Format „filename_locale_code.properties“ formatiert. Sie können den Gebietsschema-Code in der KlasseJava.Util.Localeüberprüfen. e.g

  • Englisch - Common.properties oder Common_en_US.properties

  • Chinesisch - Common_zh_CN.properties

  • Frankreich - Common_fr.properties

  • Deutsch - 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. Aktionsklasse

Erstellen Sie eine Aktionsklasse, die DispatchAction für mehrere Aktionszwecke erweitert.

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. Aktionsformular

Erstellen Sie ein Aktionsformular, in dem die Benutzer- und Kennwortdaten sowie die Formularüberprüfung gespeichert werden.

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

Erstellen Sie eine JSP-Seite, um die Sprachauswahl, den Formularwert und auch die Fehlermeldung anzuzeigen. Die "/Locale.do?method=chinese" entsprechen der DispatchActionchinese()-Methode.


 +
: +
 +
: +
 +

6. struts-config.xml

Alles zusammen.






    
        

    

    

        

        
            
        

        
            
        

    

    

7. wel.xml

Integrieren Sie das Struts-Framework in die Web Deployment-Deskriptordatei.




  Maven Struts Examples

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

  
       action
       *.do
  

Bildschirmfoto

Sie können die Benutzeroberfläche über die Sprachlinks ändern.

Englische Schnittstelle

Struts-localization-english

Chinesische Schnittstelle

Struts-localization-chinese

Frankreich Schnittstelle

Struts-localization-france

Deutsche Schnittstelle

Struts-localization-german