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.
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
Interface chinoise
Interface France
Interface allemande