struts 2 - wo sollte ich die globalen Variablen?
Ich bin mit struts 2 und ich würde gerne Lesen, einige benutzerdefinierte Parameter (Globale Variablen), vorzugsweise aus web.xml oder einige benutzerdefinierte ".Eigenschaften" der Datei (also nicht hardcoded in der Java-Quellen). Dieses problem wurde driving me mad der letzten halben Stunde, als ich nicht google jede vernünftige Lösung.
Was ist der beste Weg, dies zu tun? Ich finde es seltsam, dass es so schwierig ist ...
alle die besten
Nicola Montecchio
InformationsquelleAutor Nicola Montecchio | 2010-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fragen Sie sich zuerst: sind diese Konstanten wirklich relevant für Struts2 oder einfach nur, um Ihre Anwendung ?
Wenn das später, das ist nicht wirklich ein Struts2 Frage, und Sie, Vertrauen Sie mir - nicht wollen, binden Sie "Konstanten" management Struts2 (oder web.xml), Sie sollten barrierearm aus Ihrer Anwendung code, der außerhalb der webapp (zum Beispiel von einigen Tests code).
Ich verstehe, dass Sie fühlen sich schlecht über "harcoding" - Konstanten, die in einigen (sagen) Konstanten Klasse (mit static final Felder), aber bewusst sein, dass dies vielleicht nicht so schlimm Praxis -, wenn Sie wirklich sind Konstanten, unwahrscheinlich, geändert werden, unabhängig von Ihrem java-code. Lohnt sich ein Gedanke.
Wenn nicht, müssen Sie möglicherweise einige ConstantsManager Klasse, was ein singleton-stateless-Objekt (oder irgendeine Art von 'Service' - Objekt), der weiß, wie das laden der Konstanten, zum Beispiel von einigen property-Datei in den Klassenpfad. Wie kann die Objekte der Anwendung (einschließlich vielleicht einige Struts2 action) erhalten einen Verweis auf das ConstantsManager Instanz? Im einfachsten (und schmutzigsten) Umsetzung, müsste man ein Singleton-pattern-Umsetzung mit einer statischen getInstance () - Methode. Mehr flexible und modisch ist die DI/IOC Art und Weise, vielleicht mit einigen Bohnen-Behälter, wie der Frühling; und Struts2 ist gut geeignet, um mit zu spielen dass. Und wenn Sie nicht vertraut mit diesen Konzepten, Sie wird sicherlich pop-up-bald, für die Probleme ähnlich (aber weniger trivial), dass der Zugriff auf einige Konstanten.
InformationsquelleAutor leonbloy
Gibt es ein paar Möglichkeiten, dies zu tun.
(http://struts.apache.org/2.x/docs/constant-configuration.html).
Struts 2 Sie sollten in der Lage sein
einige Parameter in Ihrem
applicationContext.xml.
Eigenschaften, die in einer Konfigurationsdatei
zu den einzelnen application server
Bereitstellung
(http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html)
InformationsquelleAutor Jim Kiley
Ich weiß nicht, ob das funktioniert, aber http://struts.apache.org/2.0.6/struts2-core/apidocs/com/opensymphony/xwork2/ActionContext.html#get%28java.lang.Object%29
ActionContext.getContext().get(...) arbeiten könnte.
InformationsquelleAutor Kartik