Spring Tomcat und statische Ressourcen und mvc: resources

8

Ich habe angefangen, eine Web-App von Grund auf neu zu erstellen. Bevor ich immer an Apps gearbeitet habe, die schon lange laufen, musste ich mich nicht mehr mit der kompletten Setup-Phase beschäftigen. Ich benutze Spring 3 und Tomcat 6, und ich benutze Eclipse 3.6

Ich habe ein großes Problem damit, Bilder (oder andere Dinge, die sich von Controller-Antworten unterscheiden) zu liefern. In der Tat kann ich keinen Weg finden, meine Bilder in meinen Jeps zu haben. Meine Konfiguration funktioniert mit:

%Vor%

in web.xml und

%Vor%

für den Servlet-Kontext (plus andere natürlich).

Ich habe viele Nachrichten hier gelesen und andere Foren sprechen darüber:

%Vor%

aber wenn ich das in meine servlet-context.xml einfüge, kann ich Bilder liefern, aber der Controller "accise" wird nicht erreichbar sein. Missbrauche ich oder missverstanden das Ressourcen-Tag? Was ist der richtige Weg?

Update Lösung gefunden !!! :)

Das Problem war, dass meine servlet-config.xml eine Deklaration verpasste:

Jetzt ist es (mit Anmerkungen auf dem Controller):

%Vor%

    
gotch4 24.01.2011, 15:59
quelle

3 Antworten

7

<mvc:resources> spielt gut mit annotierten Controllern, erfordert jedoch möglicherweise eine zusätzliche Konfiguration mit anderen Arten von Controller-Zuordnungen.

Ich denke, in Ihrem Fall müssen Sie BeanNameUrlHandlerMapping manuell deklarieren (normalerweise wird es standardmäßig registriert, aber <mvc:resources> überschreibt Standardwerte als Nebeneffekt der Anwendung einer eigenen Konfiguration):

%Vor%     
axtavt 24.01.2011, 16:21
quelle
1

Ich hatte das gleiche Problem. Ich konnte das beheben, indem ich den vollständigen Pfad wie für

benutze

CSS

%Vor%

und für Javascript

%Vor%

Lassen Sie mich wissen, ob dies Ihr Problem löst, bevor Spring einen besseren Ansatz findet.

    
ColdStoneJava 28.06.2012 13:54
quelle
0

Ich hatte das gleiche Problem. Ich löste es, indem ich das Spring-Makro vor dem eigentlichen Verweis auf die Ressource hinzufügte, um den Servlet-Pfad aufzulösen.

Es ist nicht wirklich nett im Code, aber diese Lösung macht Sie unabhängig vom tatsächlichen Kontext, unter dem Ihre Anwendung auf dem Server und auch auf Ihrem Servlet bereitgestellt wird. Normalerweise möchten Sie nicht, dass das tatsächliche Servlet in Ihrer URL erwähnt wird.

Nehmen wir beispielsweise die Antwort von ColdStoneJava:

%Vor%

Sie müssen es auch absolut in der URL referenzieren, daher ist der Schrägstrich '/ ...' essentiell.

Dies wird nach meiner Erfahrung nicht funktionieren:

%Vor%

Prost.

    
matthaeus 16.11.2012 11:00
quelle

Tags und Links