Struts - Beispiel für mehrere Konfigurationsdateien

Struts - Beispiel für mehrere Konfigurationsdateien

Viele Entwickler möchten alle mit Struts zusammenhängenden Elemente (Aktionen, Formulare) in einer einzigen Struts-Konfigurationsdatei speichern. Es ist schnell für die anfängliche Entwicklung, aber schlecht für die zukünftige Wartung. Möglicherweise sind sich Entwickler nicht bewusst, dass Struts die Möglichkeit bietet, mehrere Konfigurationsdateien zuzulassen.

Vor 6 Jahren hatte ich mich einem großen Struts-Entwicklungsprojekt angeschlossen, das mehr als 20 Module umfasst. Leider haben die vorherigen Entwickler alle Struts-bezogenen Dinge (Aktion, Form usw.) in einer einzigen Struts-Konfigurationsdatei (struts-config.xml) abgelegt. Diestruts-config.xml wachsen einfach extrem schnell weiter und erreichen schließlich 20 ++ MB. Jedes Update dieser Konfigurationsdatei dauert einige Minuten und wartet sogar eine halbe Stunde auf eine einzelne Debugging-Bereitstellung in Eclipse IDE. Dies ist ein schwerwiegendes Leistungsproblem und führt dazu, dass das Projekt das Produktionsdatum verzögert. Was für eine gute Struts-Entwicklungserfahrung.

Bitte teilen Sie die Struts-Konfigurationsdetails in verschiedene Module auf, Struts kann dies problemlos tun.

Beispiel für mehrere Konfigurationsdateien

Dies ist die Beispielprojektstruktur für die Demonstration.

Struts-mutiple-configuration-file

1. Einzelmodul

Ein einzelnes Modul unterstützt mehrere Struts-Konfigurationsdateien.

page1.jsp

This is Page 1

page2.jsp

This is Page 2

struts-config-1.xml






    

        

    

struts-config-2.xml






    

        

    

In der Datei web.xml können Sie mehrere Struts-Konfigurationsdateien durch ein Komma „,“ trennen.
web.xml




  Maven Struts Examples

  
    action
    
        org.apache.struts.action.ActionServlet
    
    
        config
        
         /WEB-INF/struts-config-1.xml, /WEB-INF/struts-config-2.xml
        
    
    1
  

  
       action
       *.do
  

Probier es aus
  1. http://localhost:8080/StrutsExample/Page1.do
    Es wird die Seite1.jsp angezeigt

  2. http://localhost:8080/StrutsExample/common/Welcome.do
    Es wird die Seite2.jsp angezeigt

Beide Struts sind eigenschaftsgeladen.

2. Mehrere Module

Mehrere Module, jedes hat eigene Struts-Konfigurationsdateien.

admin/welcome.jsp

Welcome to admin page

common/welcome.jsp

Welcome to common page

Sowohl die Dateien "struts-config-admin.xml" als auch "struts-config-admin.xml" enthalten dieselben Einstellungen. Struts kann sie über den Parameterwert "config" in web.xml differenzieren.

In Struts 2 ist "http://www.example.com/struts2/struts-2-namespace-configuration-example-and-explanation/[Namespace]" eine effizientere Möglichkeit, diese "config parameter zu ersetzen ”Einstellung.

struts-config-admin.xml, struts-config-admin.xml






    

        

    

web.xml




  Maven Struts Examples

  
    action
    
        org.apache.struts.action.ActionServlet
    
    
        config
        
         /WEB-INF/struts-config-1.xml, /WEB-INF/struts-config-2.xml
        
    
    
        config/admin
        
         /WEB-INF/struts-config-admin.xml
        
    
    
        config/common
        
         /WEB-INF/struts-config-common.xml
        
    
    1
  

  
       action
       *.do
  

Probier es aus

Die "config/admin" stimmen mit diesem URL-Muster überein -http://localhost:8080/StrutsExample/admin/
Die "config/common" stimmen mit diesem URL-Muster überein -http://localhost:8080/StrutsExample/common/

  1. http://localhost:8080/StrutsExample/admin/Welcome.do
    Es wird die Datei admin / welcome.jsp angezeigt

  2. http://localhost:8080/StrutsExample/common/Welcome.do
    Es wird die Datei common / welcome.jsp angezeigt

Jedes Modul hat eine eigene Struts-Konfigurationsdatei.

Quellcode herunterladen