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.
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
Chinesische Schnittstelle
Frankreich Schnittstelle
Deutsche Schnittstelle