Struts 2 - Exemple de regroupement de ressources

Struts 2 - Exemple de regroupement de ressources

Pour utiliser le regroupement de ressources pour récupérer le message à partir du fichier de propriétés, vous devez comprendre l'ordre de recherche du regroupement de ressources Struts 2:

Ordre de recherche de regroupement de ressources

Le regroupement de ressources est recherché dans l'ordre suivant:

  1. ActionClass.properties

  2. Interface.properties

  3. BaseClass.properties

  4. Modèle de ModelDriven

  5. package.properties

  6. Rechercher la hiérarchie de clés de message i18n elle-même

  7. Propriétés des ressources globales

Reportez-vous à Struts 2Resource Bundle documentation pour des explications détaillées.

Salut Struts 2, vous recherchez trop, il y a trop d'ordres de recherche impliqués et des performances de coût si le fichier de propriétés n'est pas trouvé.

En pratique, il est tout à fait impossible d'organiser votre fichier de propriétés dans l'ordre ci-dessus. Donc, il suffit de comprendre que quelques ordres de recherche couramment utilisés devraient suffire:ActionClass.properties,package.properties etGlobal resource properties. Voir l'image ci-dessous:

Struts 2 resource bundle

Si uncom.example.user.action.LoginAction veut recevoir un message via un ensemble de ressources, il recherchera

  1. com.example.user.action.LoginAction.properties (found, exit, else next)

  2. com.example.user.action.package.properties (found,exit, else next)

  3. com.example.user.package.properties (found exit, else next)
    …keep find package.properties in every parent directory all the way to the root directory

  4. Trouvez lesglobal resource properties si vous le configurez dans votre application

Comprendre cet ordre de recherche peut vous donner plus de confiance pour décider du bon dossier pour le fichier de propriétés.

Obtenez le bundle de ressources

Quelques exemples pour accéder au bundle de ressources:

P.S ‘username.required‘ and ‘username‘ are the key in a properties file.

1. Classe d'action

Dans la classe Action, vous pouvez étendre ActionSupport et obtenir le regroupement de ressources via la fonction getText («clé»).

...
public class LoginAction extends ActionSupport{
    ...
    public void validate(){
        if("".equals(getUsername())){
            addFieldError("username", getText("username.required"));
        }
    }
}

2. étiquette de propriété

Dans la balise de propriété, utilisez le getText («clé»).

3. balise de texte

Dans la balise de texte, définissez la clé dans l'attribut "nom".

4. Attribut clé

L'attribut Key du composant UI a une fonction spéciale, vérifiez les détails dans cekey attribute example.

5. Balise I18n

Cette balise i18n peut obtenir le message d'un ensemble de ressources spécifié déclaré dans l'attribut «nom». Dans cet exemple, il demande d’obtenir le message «nom d’utilisateur» du fichiercom/example/user/package.properties.


     

Télécharger le projet complet pour la pratique -Struts2-Resource-Bundle-Example.zip