IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ StrutsConsultez toutes les FAQ

Nombre d'auteurs : 25, nombre de questions : 96, dernière mise à jour : 23 février 2015  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

SommaireConfiguration de l'application StrutsDivers (3)
précédent sommaire suivant
 

Struts 1.1 (et plus) supporte cette fonctionnalité.

Il permet de définir un ResourceBundle par défaut et des ResourceBundles personnalisés.
Chaque ResourceBundle personnalisé doit être identifié par une clé dans le fichier struts-config.xml :

Code xml : Sélectionner tout
1
2
<message-resources parameter="application.resources"/> 
<message-resources parameter="foo.bar.custom.myCustomResource" key="Custom"/>
Pour faire référence à ce dernier, vous devez spécifier une valeur pour l'attribut bundle :

Code xml : Sélectionner tout
<bean:write bundle="Custom" ...>

Mis à jour le 18 mai 2004 RanDomX

L'ensemble des messages est stocké dans un objet MessageResources disponible dans le scope request. Une fois cet objet récupéré, on accède à un message particulier via la méthode getMessage() avec en paramètres la locale et la clé du message à récupérer.

Un extrait de code à titre d'exemple :

Code java : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/** 
 * Return the message resources for localization 
 */ 
private static MessageResources getMessageResources(HttpServletRequest request) { 
    return (MessageResources) request.getAttribute(Globals.MESSAGES_KEY); 
} 
  
/** 
 * Get the localized message 
 */ 
public static String getLocalizedMessage(HttpServletRequest request, String messageKey) { 
  
    MessageResources messageResources = getMessageResources(request); 
    String localizedMessage = null; 
  
    if(messageResources != null) { 
        localizedMessage = messageResources.getMessage(request.getLocale(), messageKey); 
    } 
  
    if(localizedMessage == null) { 
        localizedMessage = "N/A"; 
    } 
  
    return localizedMessage; 
}
Ainsi, imaginons que dans notre fichier de localisation, nous avons un message de ce style :

Code : Sélectionner tout
prompt.hello=Bonjour
Alors dans l'action struts, pour récupérer le message dans la bonne locale, il faut faire :

Code java : Sélectionner tout
String msg = I18NHelper.getLocalizedMessage(request, "prompt.hello");

Mis à jour le 28 juin 2006 SEMPERE Benjamin

C'est un cas rarement utile, mais qui mérite d'être signalé.

Il peut être utilisé dans les cas suivants :

  • nous avons notre propre ActionMapping, et que nous voulons faire un forward en passant par une action et sans traitement particulier ou sans répétition de traitement ;
  • nous avons un autre moyen pour faire le traitement métier.

Code HTML : Sélectionner tout
1
2
3
4
<action path="/BasicAction"  
type="org.apache.struts.actions.ForwardAction" 
        parameter="/WEB-INF/jsp/resultats.jsp" 
/>

À partir de la version 1.2, on peut faire directement :
Code HTML : Sélectionner tout
1
2
3
<action path="/BasicAction"  
        forward="/WEB-INF/jsp/resultats.jsp" 
/>

Mis à jour le 28 juin 2006 c_nvy Sniper37

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.