2010-01-28 7 views
1

Je voudrais initialiser (dans Struts2) une propriété (chargement de données à partir d'un fichier) qu'une seule fois et rendre disponible cette propriété pour l'application entière de Struts 2. comment puis-je y parvenir? Ai-je besoin de remplacer les répartiteurs Struts 2?Disputcher Struts 2

Cordialement Raju

Répondre

1

Vous pouvez créer un ServletContextListener défini dans web.xml qui ouvre votre fichier de propriétés et définit la valeur souhaitée au ServletContext via:

getServletContext().setAttribute("dataKey", dataValue); 

Le ServletContext a champ d'application à l'échelle.

Mise à jour:

Vous pouvez créer une nouvelle classe qui implémente ServletContextListener (voici son JavaDoc: ServletContextListener), qui exige que vous définissez contextInitialized() et contextDestroyed() méthodes.

La méthode contextInitialized() est appelée juste avant que votre servlet commence à accepter les demandes. Dans votre méthode contextInitialized(), vous devez inclure l'appel getServletContext().setAttribute("dataKey", dataValue).

Pour enregistrer votre écoute, vous devez ajouter une définition de l'écouteur dans votre fichier web.xml:

<listener> 
    <listener-class>CLASS_PATH.CLASS_NAME</listener-class> 
</listener> 

Vous aurez besoin de remplacer CLASS_PATH.CLASS_NAME dans le fichier XML ci-dessus avec le chemin de classe et le nom de la classe de l'écouteur de contexte que vous venez de créer.

+0

merci pour votre réponse ... j'utilise Struts 2..how je fais cela .... je dois redéfinir struts2 répartiteur droite .... – raju

+0

J'ai fourni plus d'instructions détaillées sur la façon de mettre en œuvre un ServletContextListener. S'il vous plaît laissez-moi savoir si vous avez des problèmes avec mes instructions. – Abboq

+0

merci pour votre réponse ... – raju