Ich benutze Struts 2.3 mit Tomcat 7. Wie arbeitet Tomcat mit Struts2 beim Filtern Anfrage?Struts Zuordnung zu Aktion namens mit der Erweiterung funktioniert nicht
Wenn ich Struts Aktionsname auf etwas mit einer Erweiterung festlegen, funktioniert es nicht.
<action name="login.html">
<result>/WEB-INF/content/login.jsp</result>
</action>
Es ist keine statische Datei wie login.html
, warum dann Kater würde Struts nicht zulassen, den Antrag behandeln.
Wenn ich auf die URL login.html
zugreifen, gibt Tomcat 404-Seite zurück.
Wenn ich den Aktionsnamen in etwas ohne Erweiterung ändere, z. B. login
, gibt tomcat die Ergebnisseite zurück.
Die web.xml
ist wie folgt:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Ich habe nicht die Konstante struts.action.excludePattern
gesetzt. Ich kann nicht herausfinden, wie Tomcat und Struts diese URL-Mapping-Sache machen.
Ich setze dies am Ende meiner struts.xml
, um nicht zugeordnete URLs zu behandeln.
<action name="**">
<result>/index.html</result>
</action>
Wenn statische Dateien gibt, würde tomcat die statischen Dateien als Antwort verwenden, anstatt lassen Struts die Anforderung an diese Dummy Wildcard Aktion zuordnen.
Ich nehme an, dass Tomcat den Struts-Filter nicht verwenden würde, wenn eine statische Datei vorhanden ist.
Aber es verwirrt mich immer noch, warum Struts nicht URL mit Erweiterungen behandelt, wenn keine statischen Dateien unter der URL sind.